34 lines
		
	
	
	
		
			1,002 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			34 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}"
 | |
|     '';
 | |
|   }
 |