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 }