nix-configs

Personal NixOS and home-manager configuration files
Log | Files | Refs

vidyascape.nix (1212B)


      1 { pkgs, ... }:
      2 
      3 let
      4   vidyascape = pkgs.writeShellScriptBin "vidyascape" ''
      5 
      6 # variables
      7 launcher_uri="https://vidyascape.org/files/vidyascape_launcher.jar"
      8 config_file="$HOME/.vscape2/settings.ini"
      9 declare -a configs=(
     10 	"dropPosition=2"
     11 	"enabled=true"
     12 	"hideAfter=3"
     13 	"legacyNpcs=false"
     14 	"legacyObjects=true"
     15 	"loginMusic=false"
     16 	"lowDetail=false"
     17 	"modernRendering=true"
     18 	"orbsOnRight=false"
     19 	"pixelScaling=1"
     20 	"preferredWorld=2"
     21 	"rememberCredentials=true"
     22 	"rememberWorld=true"
     23 	"sizeMode=RESIZABLE"
     24 	)
     25 
     26 # launcher binary
     27 if [ -f "/tmp/$(basename $launcher_uri)" ]; then
     28    echo "Launcher exists, skipping"
     29 else
     30    echo "Launcher doesn't exist, downloading."
     31    curl -s -o "/tmp/$(basename $launcher_uri)" "$launcher_uri"
     32 fi
     33 
     34 # config file
     35 if [ -f "$config_file" ]; then
     36 	for kv in "''${configs[@]}"; do
     37 	  key=''${kv%%=*}
     38 	  value=''${kv#*=}
     39 	  # Replace key value if exists
     40 	  sed -i -E "s|^([[:space:]]*$key[[:space:]]*=[[:space:]]*).*|\1$value|" "$config_file"
     41 	done
     42 else
     43 	echo "Config doesn't exist so will not be patched until next run."
     44 fi
     45 
     46 # launch game
     47 echo "Launching game..."
     48 ${pkgs.jre8}/bin/java -jar "/tmp/$(basename $launcher_uri)"
     49   '';
     50 
     51 in {
     52   environment.systemPackages = [ vidyascape ];
     53 }