From e9c413994f4117c1e8f8696955dbacc3f18922d6 Mon Sep 17 00:00:00 2001 From: Ahwx Date: Tue, 12 Aug 2025 16:18:16 +0200 Subject: [PATCH] feat: add `createScript` wrapper also stolen from @ivarwithoutbones --- pkgs/createScript/default.nix | 40 +++++++++++++++++++++++++++++++++++ pkgs/default.nix | 2 +- 2 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 pkgs/createScript/default.nix diff --git a/pkgs/createScript/default.nix b/pkgs/createScript/default.nix new file mode 100644 index 0000000..f69f894 --- /dev/null +++ b/pkgs/createScript/default.nix @@ -0,0 +1,40 @@ +{ + lib, + runCommand, + makeWrapper, +}: + +# A function which creates a shell script with optional dependencies added to PATH. + +name: src: +{ + dependencies ? [ ], + ... +}@attrs: + +runCommand name + ( + { + inherit src; + nativeBuildInputs = lib.optionals (dependencies != [ ]) (attrs.nativeBuildInputs or [ ]) ++ [ + makeWrapper + ]; + + meta = { + mainProgram = name; + } // attrs.meta or { }; + } + // (builtins.removeAttrs attrs [ + "nativeBuildInputs" + "meta" + ]) + ) + '' + mkdir -p $out/bin + install -Dm755 $src $out/bin/$name + patchShebangs $out/bin/$name + + ${lib.optionalString (dependencies != [ ]) '' + wrapProgram $out/bin/$name --prefix PATH : ${lib.makeBinPath dependencies} + ''} + '' diff --git a/pkgs/default.nix b/pkgs/default.nix index 6b1c5d1..7d89d6c 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -1,5 +1,5 @@ { pkgs }: { - # wikit = pkgs.callPackage ./wikit/default.nix { }; + createScript = pkgs.callPackage ./createScript/default.nix { }; nix-search-fzf = pkgs.callPackage ./nix-search-fzf/default.nix { }; }