2026-06-04 06:36:19 +03:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
# Roid toolset setup script
|
|
|
|
|
# Should work on any Void Linux installation, not just specific to Roid
|
|
|
|
|
# Installs the following tools and development packages:
|
|
|
|
|
# - Shell tools: jq, yq, mlr, ag, fzf, dtach, dialog, progress, discount, HTop, Nano, MC, Zip, 7-Zip
|
|
|
|
|
# - Multimedia tools: ImageMagick, pngcrush, SoX, FFmpeg, MPG123, DUMBplay
|
|
|
|
|
# - Network tools: cURL, Socat, RSync, Wget, GSocket, Lynx, Netcat, Offpunk, aria2c, Outport, Multicities
|
|
|
|
|
# - Security tools: GnuPG, Pass, NMap, THC Hydra, John the Ripper, Hashcat, SQLMAP, Gobuster, BlueShift
|
|
|
|
|
# - Dev tools: Git, SQlite3, CMake
|
|
|
|
|
# - Languages: Go, Tcl (+ Tcllib, TclTLS, SQLite-Tcl), Janet (+ JPM, Spork, Jurl, Janet-SQLite3)
|
2026-06-04 08:10:39 +03:00
|
|
|
# - Fun tools and games: Frotz, FIGlet (+ extra fonts), BSD Games, Netris, Nudoku, Scoundrel-Bash,
|
2026-06-04 06:36:19 +03:00
|
|
|
# Rogue, Cataclysm: Dark Days Ahead (min. 80x24 terminal size required for it and Rogue)
|
|
|
|
|
# Created by Luxferre in 2026, released into the public domain
|
|
|
|
|
|
|
|
|
|
# Local single-script installation helper
|
|
|
|
|
localinst() {
|
|
|
|
|
local name="$1" url="$2"
|
|
|
|
|
sudo curl -fsSL -o /usr/local/bin/$name "$url"
|
|
|
|
|
sudo chmod +x /usr/local/bin/$name
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# install all tool dependencies
|
|
|
|
|
echo 'Installing packages...'
|
2026-06-04 08:10:39 +03:00
|
|
|
PKGS='curl git nano mc zip p7zip jq yq miller the_silver_searcher fzf dtach dialog progress discount rlwrap htop sqlite tcl tcllib tcltls sqlite-tcl janet jpm go cmake openssl-devel libcurl-devel aria2 wget lynx offpunk netcat socat rsync gnupg pass nmap john hashcat hashcat-utils thc-hydra sqlmap gobuster ImageMagick pngcrush sox ffmpeg mpg123 dumbplay figlet figlet-fonts frotz bsd-games rogue netris nudoku Cataclysm-DDA'
|
2026-06-04 06:36:19 +03:00
|
|
|
cd
|
|
|
|
|
sudo xbps-install -Suy $PKGS
|
|
|
|
|
|
|
|
|
|
# install GSocket
|
|
|
|
|
$SHELL -c "$(curl -fsSL gsocket.io/install.sh)"
|
|
|
|
|
cd gsocket
|
|
|
|
|
sudo make install
|
|
|
|
|
cd ..
|
|
|
|
|
rm -rf gsocket
|
|
|
|
|
|
|
|
|
|
# install Janet modules
|
|
|
|
|
jpm install spork jurl sqlite3
|
|
|
|
|
|
|
|
|
|
# install Outport
|
|
|
|
|
localinst outport 'https://codeberg.org/luxferre/sh-goodies/raw/branch/master/outport'
|
|
|
|
|
|
|
|
|
|
# install Multicities
|
|
|
|
|
localinst cities 'https://codeberg.org/luxferre/sh-goodies/raw/branch/master/cities.sh'
|
|
|
|
|
|
|
|
|
|
# install BlueShift
|
2026-06-04 08:10:39 +03:00
|
|
|
localinst blueshift 'https://codeberg.org/luxferre/sh-goodies/raw/branch/master/blueshift.sh'
|
2026-06-04 06:36:19 +03:00
|
|
|
|
|
|
|
|
# install Scoundrel
|
|
|
|
|
localinst scoundrel 'https://codeberg.org/luxferre/bash-goodies/raw/branch/master/scoundrel'
|
|
|
|
|
|
|
|
|
|
echo 'Updating configs...'
|
|
|
|
|
# Write the RC file
|
|
|
|
|
cat > $HOME/.roidtoolrc <<'EOF'
|
|
|
|
|
# Generate a pseudorandom key from machine alias
|
|
|
|
|
gs-key() {
|
|
|
|
|
echo "$*"|sha512sum -b|base64 -w0|tr -d -c a-z0-9|cut -c 1-22
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# Enter the machine by its alias
|
|
|
|
|
gs-enter() {
|
|
|
|
|
gs-netcat -i -s "$(gs-key "$*")"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# Print out GS deployment/undeployment/access commands
|
|
|
|
|
gs-deploy-cmd() {
|
|
|
|
|
machinekey="$(gs-key "$*")"
|
|
|
|
|
printf 'Deploy on target:\ncurl -fsSL https://gsocket.io/y | X=%s bash\n' "$machinekey"
|
|
|
|
|
printf 'Undeploy from target:\ncurl -fsSL https://gsocket.io/y | GS_UNDO=1 bash\n'
|
|
|
|
|
printf 'Access:\ngs-enter %s\n' "$*"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# Janet-specific aliases
|
|
|
|
|
alias jpm-build='jpm clean && jpm build --build-type=release --ldflags="-s"'
|
|
|
|
|
alias jpm-build-static='jpm clean && jpm build --build-type=release --ldflags="-s" --janet-cflags="-static"'
|
|
|
|
|
|
|
|
|
|
# Fix Frotz not wanting to run as root
|
|
|
|
|
alias frotz='sudo -u nobody frotz'
|
|
|
|
|
|
|
|
|
|
EOF
|
|
|
|
|
echo ". $HOME/.roidtoolrc" >> $HOME/.bashrc
|
|
|
|
|
echo 'Done. Restart the shell to apply'
|