nix-configs

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

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 }