nix-configs

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

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 }