The library does not depend on stdenv, that `stdenv` exposes `lib` is an artifact of the ancient origins of nixpkgs.
		
			
				
	
	
		
			38 lines
		
	
	
		
			949 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			949 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
let
 | 
						|
  seed = "2151901553968352745";
 | 
						|
  rcon-pass = "foobar";
 | 
						|
  rcon-port = 43000;
 | 
						|
in import ./make-test-python.nix ({ pkgs, ... }: {
 | 
						|
  name = "minecraft-server";
 | 
						|
  meta = with pkgs.lib.maintainers; { maintainers = [ nequissimus ]; };
 | 
						|
 | 
						|
  nodes.server = { ... }: {
 | 
						|
    environment.systemPackages = [ pkgs.mcrcon ];
 | 
						|
 | 
						|
    nixpkgs.config.allowUnfree = true;
 | 
						|
 | 
						|
    services.minecraft-server = {
 | 
						|
      declarative = true;
 | 
						|
      enable = true;
 | 
						|
      eula = true;
 | 
						|
      serverProperties = {
 | 
						|
        enable-rcon = true;
 | 
						|
        level-seed = seed;
 | 
						|
        online-mode = false;
 | 
						|
        "rcon.password" = rcon-pass;
 | 
						|
        "rcon.port" = rcon-port;
 | 
						|
      };
 | 
						|
    };
 | 
						|
 | 
						|
    virtualisation.memorySize = 2048;
 | 
						|
  };
 | 
						|
 | 
						|
  testScript = ''
 | 
						|
    server.wait_for_unit("minecraft-server")
 | 
						|
    server.wait_for_open_port(${toString rcon-port})
 | 
						|
    assert "${seed}" in server.succeed(
 | 
						|
        "mcrcon -H localhost -P ${toString rcon-port} -p '${rcon-pass}' -c 'seed'"
 | 
						|
    )
 | 
						|
  '';
 | 
						|
})
 |