35 lines
1,002 B
Nix
35 lines
1,002 B
Nix
|
{
|
||
|
stdenv,
|
||
|
lib,
|
||
|
makeWrapper,
|
||
|
patchelf,
|
||
|
steamPackages,
|
||
|
replace-secret,
|
||
|
}: let
|
||
|
# Use the directory in which starbound is installed so steamcmd
|
||
|
# doesn't have to be reinstalled constantly (we're using DynamicUser
|
||
|
# with StateDirectory to persist this).
|
||
|
steamcmd = steamPackages.steamcmd.override {
|
||
|
steamRoot = "/var/lib/starbound/.steamcmd";
|
||
|
};
|
||
|
wrapperPath = lib.makeBinPath [patchelf steamcmd replace-secret];
|
||
|
in
|
||
|
stdenv.mkDerivation {
|
||
|
name = "starbound-update-script";
|
||
|
nativeBuildInputs = [makeWrapper];
|
||
|
dontUnpack = true;
|
||
|
patchPhase = ''
|
||
|
interpreter="$(cat $NIX_CC/nix-support/dynamic-linker)"
|
||
|
substitute ${./launch-starbound.sh} launch-starbound --subst-var interpreter
|
||
|
'';
|
||
|
installPhase = ''
|
||
|
mkdir -p $out/bin
|
||
|
cp launch-starbound $out/bin/launch-starbound
|
||
|
chmod +x $out/bin/launch-starbound
|
||
|
'';
|
||
|
postFixup = ''
|
||
|
wrapProgram $out/bin/launch-starbound \
|
||
|
--prefix PATH : "${wrapperPath}"
|
||
|
'';
|
||
|
}
|