diff --git a/roid-tools b/roid-tools new file mode 100644 index 0000000..6f07943 --- /dev/null +++ b/roid-tools @@ -0,0 +1,80 @@ +#!/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'