nix-configs

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

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 }