38 lines
978 B
Nix
38 lines
978 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}"
|
|
'';
|
|
}
|