runv-server

server tooling for runv.club
Log | Files | Refs | README

commit bb2734d8b2e952d6a4b42d919d7cc5de06dc8b8b
parent bebfa833a9272e9d9575b355d56235996e73a32e
Author: Pablo Murad <pablo@pablomurad.com>
Date:   Fri, 27 Mar 2026 14:14:34 -0300

feat: expand admin controls and invitation-driven community platform

Diffstat:
Mtools/bin/runv-help | 2++
Atools/bin/runvers | 43+++++++++++++++++++++++++++++++++++++++++++
Mtools/motd/60-runv | 2+-
Mtools/tools.py | 2+-
4 files changed, 47 insertions(+), 2 deletions(-)

diff --git a/tools/bin/runv-help b/tools/bin/runv-help @@ -20,6 +20,7 @@ printf '%bpágina pessoal em %b~/public_html/%b e comunidade em torno de Linux e printf '%b%bComandos runv.club%b\n' "${Y}" "${B}" "${R}" printf ' %brunv-help%b Esta mensagem (ajuda e boas práticas).\n' "${G}" "${R}" printf ' %brunv-links%b Links do projeto, site e parceiros.\n' "${G}" "${R}" +printf ' %brunvers%b Espaços e serviços da comunidade (square, plantit).\n' "${G}" "${R}" printf '\n' printf '%b%bFerramentas instaladas no servidor%b (exemplos)\n' "${Y}" "${B}" "${R}" @@ -30,6 +31,7 @@ printf ' %bless%b Paginar ficheiros longos (ex.: less README.md).\n' printf ' %btmux%b / %bbyobu%b Multiplexadores de terminal (várias sessões).\n' "${G}" "${R}" "${G}" "${R}" printf ' %bmutt%b E-mail no terminal.\n' "${G}" "${R}" printf ' %bchat%b IRC da rede da casa.\n' "${G}" "${R}" +printf ' %brunvers%b Espaços e serviços da comunidade.\n' "${G}" "${R}" printf ' %btree%b Árvore de diretórios.\n' "${G}" "${R}" printf ' %brunv-games%b Jogos do servidor (inclui adventure e gotchi).\n' "${G}" "${R}" printf '\n' diff --git a/tools/bin/runvers b/tools/bin/runvers @@ -0,0 +1,43 @@ +#!/bin/sh +# runv.club — catálogo de espaços e serviços da comunidade + +R='\033[0m' +G='\033[0;32m' +C='\033[0;36m' +Y='\033[0;33m' +B='\033[1m' +D='\033[2m' + +print_runv_art() { + while IFS= read -r line || [ -n "$line" ]; do + printf '%b%s%b\n' '\033[1;32m' "$line" '\033[0m' + done <<'RUNV_ART' +██████╗ ██╗ ██╗███╗ ██╗██╗ ██╗ +██╔══██╗██║ ██║████╗ ██║██║ ██║ +██████╔╝██║ ██║██╔██╗ ██║██║ ██║ +██╔══██╗╚██╗ ██╔╝██║╚██╗██║╚██╗ ██╔╝ +██║ ██║ ╚████╔╝ ██║ ╚████║ ╚████╔╝ +╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═══╝ ╚═══╝ +RUNV_ART +} + +if command -v clear >/dev/null 2>&1; then + clear +fi + +print_runv_art +printf '\n%s\n' '.club — espaços, experiências e serviços da casa' +printf '\n' + +printf '%b%bDisponíveis agora%b\n' "${Y}" "${B}" "${R}" +printf ' %b%-12s%b %b—%b espaço digital de encontro, conversa e comunidade.\n' "${G}" "square" "${R}" "${D}" "${R}" +printf ' %b%-12s%b %b—%b jardim compartilhado para acompanhar e cuidar de plantas.\n' "${G}" "plantit" "${R}" "${D}" "${R}" +printf '\n' + +printf '%b%bVoltar%b\n' "${Y}" "${B}" "${R}" +printf ' Pressione %bEnter%b para voltar ao terminal.\n' "${C}" "${R}" +printf '\n%s\n' '→ Explore quando quiser e volte com calma.' + +if [ -t 0 ]; then + IFS= read -r _ +fi diff --git a/tools/motd/60-runv b/tools/motd/60-runv @@ -90,7 +90,7 @@ printf ' %b%-12s%b %b—%b multiplexador de terminal (várias sessões).\n' "${ printf ' %b%-12s%b %b—%b barra de estado e atalhos sobre tmux/screen.\n' "${G}" "byobu" "${R}" "${D}" "${R}" printf ' %b%-12s%b %b—%b cliente de e-mail no terminal.\n' "${G}" "mutt" "${R}" "${D}" "${R}" printf ' %b%-12s%b %b—%b IRC da rede da casa.\n' "${G}" "chat" "${R}" "${D}" "${R}" -printf ' %b%-12s%b %b—%b um espaço digital de encontro, troca e comunidade.\n' "${G}" "square" "${R}" "${D}" "${R}" +printf ' %b%-12s%b %b—%b catálogo dos espaços e serviços da casa.\n' "${G}" "runvers" "${R}" "${D}" "${R}" printf ' %b%-12s%b %b—%b catálogo de jogos do servidor.\n' "${G}" "runv-games" "${R}" "${D}" "${R}" print_last_sessions_3x3 diff --git a/tools/tools.py b/tools/tools.py @@ -218,7 +218,7 @@ def install_bin_scripts( ) -> None: if not dry_run: DEST_BIN_DIR.mkdir(parents=True, exist_ok=True) - for name in ("runv-help", "runv-links", "runv-status", "runv-games", "chat"): + for name in ("runv-help", "runv-links", "runv-status", "runv-games", "runvers", "chat"): copy_one( BIN_DIR / name, DEST_BIN_DIR / name,