diff --git a/example/Example.idr b/example/Example.idr new file mode 100644 index 0000000..08a41dc --- /dev/null +++ b/example/Example.idr @@ -0,0 +1,7 @@ +module Example + +import TAP + + +main : IO () +main = TAP.main !getTestOpts [] diff --git a/example/example.ipkg b/example/example.ipkg new file mode 100644 index 0000000..f7ee320 --- /dev/null +++ b/example/example.ipkg @@ -0,0 +1,8 @@ +package tap-example +depends = base, contrib, tap + +sourcedir = "." + +executable = tap-example +main = Example +modules = Example diff --git a/flake.nix b/flake.nix index a71fcba..c16e993 100644 --- a/flake.nix +++ b/flake.nix @@ -7,20 +7,30 @@ }; outputs = { self, nixpkgs, idris2-pkgs, flake-utils }: - flake-utils.lib.eachSystem [ "x86_64-darwin" "x86_64-linux" "i686-linux" ] - (system: - let - pkgs = import nixpkgs { - inherit system; - overlays = [ idris2-pkgs.overlay ]; - }; - inherit (pkgs.idris2-pkgs._builders) idrisPackage devEnv; + let systems = with flake-utils.lib.system; + [ x86_64-darwin x86_64-linux i686-linux ]; + in + flake-utils.lib.eachSystem systems (system: + let + pkgs = import nixpkgs { + inherit system; + overlays = [ idris2-pkgs.overlay ]; + }; + inherit (pkgs.idris2-pkgs._builders) idrisPackage devEnv; + packages = rec { tap = idrisPackage ./. { }; - in { - defaultPackage = tap; - packages = { inherit tap; }; - devShell = pkgs.mkShell { buildInputs = [ (devEnv tap) ]; }; - } - ); + tap-example = idrisPackage ./example { extraPkgs = packages; }; + }; + devShells = + let mkDevShell = _: pkg: + pkgs.mkShell { buildInputs = [ (devEnv pkg) ]; }; + shells = packages // (with packages; { example = tap-example; }); + in builtins.mapAttrs mkDevShell shells; + in { + inherit packages devShells; + defaultPackage = packages.tap; + devShell = devShells.tap; + } + ); }