{ 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}" ''; }