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.wip/nixpkgs-raku
parent
09eacdb0df
commit
8c6d942984
@ -0,0 +1,28 @@ |
||||
{ 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 |
Loading…
Reference in new issue