vidyaplace.nix (1716B)
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 "loginMusic=false" 23 "lowDetail=false" 24 "modernRendering=true" 25 "orbsOnRight=false" 26 "pixelScaling=1" 27 "preferredWorld=2" 28 "rememberCredentials=true" 29 "rememberWorld=true" 30 "sizeMode=RESIZABLE" 31 "disableLoginResize=false" 32 ) 33 34 # launcher binary 35 if [ -f "/tmp/$(basename $launcher_uri)" ]; then 36 echo "Launcher exists, skipping" 37 else 38 echo "Launcher doesn't exist, downloading." 39 curl -s -o "/tmp/$(basename $launcher_uri)" "$launcher_uri" 40 fi 41 42 # config file 43 if [ -f "$config_file" ]; then 44 for kv in "''${configs[@]}"; do 45 key=''${kv%%=*} 46 value=''${kv#*=} 47 # Replace key value if exists 48 sed -i -E "s|^([[:space:]]*$key[[:space:]]*=[[:space:]]*).*|\1$value|" "$config_file" 49 done 50 else 51 echo "Config doesn't exist so will not be patched until next run." 52 fi 53 54 # launch game 55 echo "Launching game..." 56 java -jar "/tmp/$(basename $launcher_uri)" 57 ''; 58 }; 59 60 in { 61 environment.systemPackages = [ vidyaplace ]; 62 }