96 lines
2.6 KiB
Bash
Executable file
96 lines
2.6 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
TMPDIR=$(pwd)/tmp
|
|
export TMPDIR
|
|
|
|
help() { declare -F | awk -v ORS=" " '{ print $3 }'; echo; }
|
|
|
|
build() {
|
|
nix build .#"$1"
|
|
}
|
|
|
|
dump() {
|
|
build "$@"
|
|
if [ -e "vm-$1.nix" ]; then
|
|
sudo cp -f result/vzdump* /mnt/share/proxmox/dump/
|
|
elif [ -e "lxc-$1.nix" ]; then
|
|
sudo cp -f result/tarball/nixos-system-x86_64-linux.tar.xz "/mnt/share/proxmox/dump/$1.tar.xz"
|
|
fi
|
|
}
|
|
|
|
get-ip() {
|
|
file="$1"
|
|
if [[ "$file" = "proxmox" ]]; then
|
|
echo 192.168.0.3
|
|
return
|
|
elif [[ "$file" != *.nix && -e "vm-$1.nix" ]]; then
|
|
file="vm-$1.nix"
|
|
elif [[ "$file" != *.nix && -e "lxc-$1.nix" ]]; then
|
|
file="lxc-$1.nix"
|
|
fi
|
|
grep ip4 "$file" | grep -Po "[0-9]+(\.[0-9]+){3}"
|
|
}
|
|
|
|
deploy() {
|
|
ip=$(get-ip "$1")
|
|
nix-shell -p '(nixos{}).nixos-rebuild' --run \
|
|
'nixos-rebuild switch --flake .#'"$1"' --target-host admin@"'"$ip"'" --use-remote-sudo'
|
|
}
|
|
|
|
ssh() {
|
|
command "${2:-mosh}" admin@"$(get-ip "$1")"
|
|
}
|
|
|
|
_modrinth() {
|
|
slug="$1"
|
|
mcversion=$(grep fabricServers vm-majcraft.nix | grep -Po "[0-9_]+" | head -n1)
|
|
mcversion=${mcversion//_/.}
|
|
curl -sSL "https://api.modrinth.com/v2/project/${slug}/version?loaders=fabric&game_versions=$mcversion"
|
|
}
|
|
majcraft-update() {
|
|
mcversion=$(grep fabricServers vm-majcraft.nix | grep -Po "[0-9_]+" | head -n1)
|
|
mcversion=${mcversion//_/.}
|
|
versionWithoutPatch=${mcversion%.[0-9]}
|
|
mods=(
|
|
Jrmoreqs AdvancedBackups
|
|
r0v8vy1s Alternate_Current
|
|
sml2FMaA AntiXray
|
|
lhGA9TYQ Architectury_API
|
|
MBAkmtvl Balm
|
|
Y8o1j1Sf Better_Fabric_Console
|
|
e0M1UDsY Collective
|
|
P7dR8mSH Fabric_API
|
|
uXXizFIs FerriteCore
|
|
nvQzSEkH Jade
|
|
jzTUm9hE Just_Mob_Heads
|
|
YdVBZMNR Just_Player_Heads
|
|
7uh75ruZ KleeSlabs
|
|
fQEb0iXm Krypton
|
|
gvQqBUqZ Lithium
|
|
nmDcB62a ModernFix
|
|
qQyHxfxd No_Chat_Reports
|
|
34T8oVNY Pl3xMap
|
|
zQhsx8KF Servux
|
|
G9rHXWug Sessility
|
|
9eGKb6K1 Simple_Voice_Chat
|
|
doqSKB0e Styled_Chat
|
|
DQIfKUHf Styled_Player_List
|
|
nxrXbh5K View_Distance_Fix
|
|
dbVXHSlv FabricExporter
|
|
l6YH9Als Spark
|
|
)
|
|
for (( i=0; i<${#mods[*]}; i+=2 )); do
|
|
slug="${mods[$i]}"
|
|
name="${mods[$i+1]}"
|
|
uri="https://api.modrinth.com/v2/project/${slug}/version?loaders=fabric&game_versions=$mcversion"
|
|
hash=$(curl -sSL "$uri" \
|
|
| jq -r '.[] | select(.loaders[] | contains("fabric"))' \
|
|
| jq -r 'select(.game_versions[] | . == ("'"$mcversion"'", "'"$versionWithoutPatch"'"))' \
|
|
| jq -r --slurp 'first | .id')
|
|
>&2 echo "$name ($mcversion $versionWithoutPatch) $uri $hash"
|
|
echo "$name = pkgs.$(nix run github:Infinidoge/nix-minecraft#nix-modrinth-prefetch -- "$hash");"
|
|
done
|
|
}
|
|
|
|
"$@"
|