diff --git a/pkgs/by-name/mi/micro/package.nix b/pkgs/by-name/mi/micro/package.nix index 2e678546b456d..8f2bb8488db38 100644 --- a/pkgs/by-name/mi/micro/package.nix +++ b/pkgs/by-name/mi/micro/package.nix @@ -63,6 +63,7 @@ let inherit callPackage; directory = ./tests; }; + wrapper = callPackage ./wrapper.nix { micro = self; }; }; meta = { diff --git a/pkgs/by-name/mi/micro/wrapper.nix b/pkgs/by-name/mi/micro/wrapper.nix new file mode 100644 index 0000000000000..1455fb44c4479 --- /dev/null +++ b/pkgs/by-name/mi/micro/wrapper.nix @@ -0,0 +1,33 @@ +{ + lib, + micro, + makeWrapper, + symlinkJoin, + # configurable options + extraPackages ? [ ], +}: + +symlinkJoin { + name = "micro-wrapped-${micro.version}"; + inherit (micro) pname version outputs; + + nativeBuildInputs = [ makeWrapper ]; + + paths = [ micro ]; + + postBuild = '' + ${lib.concatMapStringsSep "\n" ( + output: "ln --verbose --symbolic --no-target-directory ${micro.${output}} \$${output}" + ) (lib.remove "out" micro.outputs)} + + pushd $out/bin + for f in *; do + rm $f + makeWrapper ${micro}/bin/$f $f \ + --prefix PATH ":" "${lib.makeBinPath extraPackages}" + done + popd + ''; + + meta = micro.meta; +}