about summary refs log tree commit diff
path: root/nix/templates/goapp/flake.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nix/templates/goapp/flake.nix')
-rw-r--r--nix/templates/goapp/flake.nix21
1 files changed, 13 insertions, 8 deletions
diff --git a/nix/templates/goapp/flake.nix b/nix/templates/goapp/flake.nix
index 4e97240..132667d 100644
--- a/nix/templates/goapp/flake.nix
+++ b/nix/templates/goapp/flake.nix
@@ -3,7 +3,7 @@
   inputs.flake-utils.url = "git+https://github.com/numtide/flake-utils";
 
   outputs =
-    { nixpkgs, flake-utils, ... }:
+    { self, nixpkgs, flake-utils, ... }:
     flake-utils.lib.eachDefaultSystem (
       system:
       let
@@ -12,19 +12,24 @@
           overlays = [ ];
         };
 
-        package-and-docker = packagename: {
+        package-and-docker = name: system: (let
+          pkgname = name + "-pkg";
+          dockername = name + "-docker";
+        in {
           # the raw package
-          "${packagename}" = import ./${packagename} { inherit pkgs packagename; };
+          ${pkgname} = import ./${name} { inherit pkgs name; };
 
           # the docker image
-          "${packagename}-docker" = pkgs.dockerTools.buildImage {
-            name = "${packagename}";
-            config.Cmd = [ "${packagename}/bin/${packagename}" ];
+          ${dockername} = pkgs.dockerTools.buildImage {
+            name = "${name}";
+            config.Cmd = [ "${self.packages.${system}.${pkgname}}/bin/${name}" ];
           };
-        };
+        });
       in
       {
-        packages = { } // (package-and-docker "backend") // (package-and-docker "frontend");
+        packages = { }
+                   // (package-and-docker "backend" system)
+                   // (package-and-docker "frontend" system);
 
         devShells.default = pkgs.mkShell {
           buildInputs = builtins.attrValues {