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