aboutsummaryrefslogtreecommitdiffstats
path: root/utils
diff options
context:
space:
mode:
Diffstat (limited to 'utils')
-rw-r--r--utils/default.nix3
-rw-r--r--utils/scripts.nix33
2 files changed, 36 insertions, 0 deletions
diff --git a/utils/default.nix b/utils/default.nix
new file mode 100644
index 0000000..b4dac37
--- /dev/null
+++ b/utils/default.nix
@@ -0,0 +1,3 @@
+{
+ scripts = import ./scripts.nix;
+}
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}
+ '';
+ };
+}