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