#!/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) # - Fun tools and games: Frotz, FIGlet (+ extra fonts), BSD Games, Bastet, Nudoku, GNU Go, Scoundrel-Bash, # 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...' 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 bastet nudoku gnugo Cataclysm-DDA' 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 localinst blueshift 'https://codeberg.org/luxferre/sh-goodies/src/branch/master/blueshift.sh' # 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'