aboutsummaryrefslogtreecommitdiff
path: root/nixinate/generate-apps.nix
blob: 6871d049f715a7a7b34b0bff3d96634b86d67924 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
nixpkgs: pkgs: flake:

let
  machines = builtins.attrNames flake.nixosConfigurations;
  validMachines = nixpkgs.lib.remove ""
    (nixpkgs.lib.forEach machines
      (x: nixpkgs.lib.optionalString
        (flake.nixosConfigurations."${x}"._module.args ? nixinate) "${x}"));
  mkDeployScript = import ./make-deploy-script.nix { inherit nixpkgs pkgs flake; };
in
nixpkgs.lib.genAttrs
  validMachines
  (x:
    {
      type = "app";
      program = toString (mkDeployScript {
        machine = x;
        dryRun = false;
      });
    }
  )
  // nixpkgs.lib.genAttrs
  (map (a: a + "-dry-run") validMachines)
  (x:
    {
      type = "app";
      program = toString (mkDeployScript {
        machine = nixpkgs.lib.removeSuffix "-dry-run" x;
        dryRun = true;
      });
    }
  )