{ lib, stdenv, customInstallScript ? "", fhsEnv ? "", executables ? "", mainProgram ? "" }:
let
genScript = file: ''
#!/usr/bin/env bash
exec ${lib.getExe fhsEnv} ${file} \"\$@\"
'';
createScript = file: ''
echo "${genScript file}" > $out/bin/${file}
chmod +x $out/bin/${file}
'';
createScripts = map (file: createScript file) executables;
in stdenv.mkDerivation {
name = mainProgram;
installPhase = ''
mkdir -p $out/bin
'' + customInstallScript + (lib.concatStrings createScripts);
phases = [ "installPhase" ];
meta = {
inherit mainProgram;
};
}