2024-10-28 13:12:06 +00:00
|
|
|
{
|
|
|
|
nixpkgs,
|
|
|
|
flake-utils,
|
|
|
|
...
|
|
|
|
}:
|
|
|
|
flake-utils.lib.eachDefaultSystem (system: let
|
2024-09-07 11:06:37 +00:00
|
|
|
pkgs = nixpkgs.legacyPackages.${system};
|
2024-10-28 13:12:06 +00:00
|
|
|
createScript = {
|
|
|
|
name,
|
|
|
|
runtimeInputs,
|
|
|
|
scriptPath,
|
|
|
|
extraWrapperFlags ? "",
|
|
|
|
...
|
|
|
|
}: let
|
|
|
|
script = (pkgs.writeScriptBin name (builtins.readFile scriptPath)).overrideAttrs (old: {
|
|
|
|
buildCommand = "${old.buildCommand}\n patchShebangs $out";
|
|
|
|
});
|
|
|
|
in
|
2024-04-13 15:28:31 +00:00
|
|
|
pkgs.symlinkJoin {
|
2024-03-27 19:10:14 +00:00
|
|
|
inherit name;
|
2024-10-28 13:12:06 +00:00
|
|
|
paths = [script] ++ runtimeInputs;
|
|
|
|
buildInputs = [pkgs.makeWrapper];
|
2024-05-19 12:05:20 +00:00
|
|
|
postBuild = "wrapProgram $out/bin/${name} --set PATH $out/bin ${extraWrapperFlags}";
|
2024-03-27 19:10:14 +00:00
|
|
|
};
|
2024-10-28 13:12:06 +00:00
|
|
|
in {
|
2024-05-19 12:05:20 +00:00
|
|
|
packages.bootstrap = createScript {
|
|
|
|
name = "bootstrap";
|
2024-10-28 13:12:06 +00:00
|
|
|
runtimeInputs = with pkgs; [sops coreutils nixos-anywhere];
|
2024-05-19 12:05:20 +00:00
|
|
|
scriptPath = ./bootstrap.sh;
|
|
|
|
};
|
2024-03-27 19:10:14 +00:00
|
|
|
})
|