Nikita Karetnikov <[email protected]> skribis:
> I guess that I can implement this one:
>
> ** Add equivalent to Nixpkgs's ‘wrapProgram’
>
> What's the purpose of 'wrapProgram'? Could you elaborate?
Here’s an example from the Guile expression in Nixpkgs:
wrapProgram $out/bin/guile-snarf --prefix PATH : "${gawk}/bin"
What it does is that it renames guile-snarf to .guile-snarf-real, and
makes guile-snarf a wrapper around the real one, like this:
#!/bin/sh
export PATH="/nix/store/...-gawk/bin:$PATH"
exec ./.guile-snarf-real "$@"
This is useful for scripts that expect particular programs to be in
$PATH, for programs that expect particular shared libraries to be in
$LD_LIBRARY_PATH, or modules in $GUILE_LOAD_PATH, etc.
The source for Nixpkgs’s ‘wrapProgram’ is at:
https://github.com/NixOS/nixpkgs/blob/master/pkgs/build-support/setup-hooks/make-wrapper.sh
In our case, the equivalent would be a procedure in (guix build utils).
The generated wrapper would probably still be a Bash script as above.
Thanks!
Ludo’.