forked from mirrors/nixpkgs
8c6d942984
This commit creates a wrapper with the purpose of gracefully execute Arcan applications (appls, in Arcan jargon). In a typical FHS system, Arcan can be invoked by a commandline like `arcan <appl>`, or more generally `arcan <arcan options> <appl> <appl options>`. In order to emulate this behaviour, this wrapper was crafted. It `symlinkJoin`s Arcan and the appls, and sets the relevant environment variables accordingly.
29 lines
866 B
Nix
29 lines
866 B
Nix
{ arcan
|
|
, makeWrapper
|
|
, symlinkJoin
|
|
, appls ? [ ]
|
|
, name ? "arcan-wrapped"
|
|
}:
|
|
|
|
symlinkJoin rec {
|
|
inherit name;
|
|
|
|
paths = appls ++ [ arcan ];
|
|
|
|
nativeBuildInputs = [ makeWrapper ];
|
|
|
|
postBuild = ''
|
|
for prog in ${placeholder "out"}/bin/*; do
|
|
wrapProgram $prog \
|
|
--prefix PATH ":" "${placeholder "out"}/bin" \
|
|
--set ARCAN_APPLBASEPATH "${placeholder "out"}/share/arcan/appl/" \
|
|
--set ARCAN_BINPATH "${placeholder "out"}/bin/arcan_frameserver" \
|
|
--set ARCAN_LIBPATH "${placeholder "out"}/lib/" \
|
|
--set ARCAN_RESOURCEPATH "${placeholder "out"}/share/arcan/resources/" \
|
|
--set ARCAN_SCRIPTPATH "${placeholder "out"}/share/arcan/scripts/" \
|
|
--set ARCAN_STATEBASEPATH "$HOME/.arcan/resources/savestates/"
|
|
done
|
|
'';
|
|
}
|
|
# TODO: set ARCAN_FONTPATH to a set of fonts that can be provided in a parameter
|