aboutsummaryrefslogtreecommitdiffstats
path: root/utils/scripts.nix
diff options
context:
space:
mode:
Diffstat (limited to 'utils/scripts.nix')
-rw-r--r--utils/scripts.nix33
1 files changed, 33 insertions, 0 deletions
diff --git a/utils/scripts.nix b/utils/scripts.nix
new file mode 100644
index 0000000..87639c6
--- /dev/null
+++ b/utils/scripts.nix
@@ -0,0 +1,33 @@
+{
+ lib,
+ pkgs,
+ config,
+}:
+
+{
+ # We define mkScript as a function that takes the context it needs
+ mkScript =
+ name: path: env:
+ let
+ # Logic inside the helper
+ defaultShell =
+ if (config.tools.zsh.enable or false) then
+ (lib.getExe config.programs.zsh.package)
+ else
+ "/usr/bin/env sh";
+
+ envVars = lib.concatStringsSep "\n" (
+ lib.mapAttrsToList (n: v: "export ${n}=\"${toString v}\"") env
+ );
+ in
+ pkgs.writeTextFile {
+ inherit name;
+ executable = true;
+ destination = "/bin/${name}";
+ text = ''
+ #!${defaultShell}
+ ${envVars}
+ ${builtins.readFile path}
+ '';
+ };
+}