From 065686f341a440ee30cbe4e842c5dfccb43b3932 Mon Sep 17 00:00:00 2001 From: dissimulo Date: Wed, 22 Apr 2026 07:00:52 -0700 Subject: [PATCH] spam-ascii: "*" dumps entire ~/ascii; alias quotes $0 to preserve it --- .irssi/config | 2 +- .local/bin/spam-ascii | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/.irssi/config b/.irssi/config index 9aa8a168..9cf390de 100644 --- a/.irssi/config +++ b/.irssi/config @@ -158,7 +158,7 @@ aliases = { SB = "SCROLLBACK"; SBAR = "STATUSBAR"; SIGNOFF = "QUIT"; - SPAM = "EXEC -out ~/.local/bin/spam-ascii $0"; + SPAM = "EXEC -out ~/.local/bin/spam-ascii '$0'"; SV = "MSG * Irssi $J ($V) - http://www.irssi.org"; T = "TOPIC"; UB = "UNBAN"; diff --git a/.local/bin/spam-ascii b/.local/bin/spam-ascii index f4a11162..8c728d70 100755 --- a/.local/bin/spam-ascii +++ b/.local/bin/spam-ascii @@ -3,6 +3,7 @@ # spam-ascii — cat a file from ~/ascii given a partial/fuzzy name. # # Resolution order: +# 0. pattern `*` → cat every file in ~/ascii (sorted) # 1. exact filename match: ~/ascii/ # 2. exact name + common extension: .txt, .ans, .asc # 3. first case-insensitive *substring* match (sorted alphabetically) @@ -14,12 +15,20 @@ set -eu pattern=${1:-} if [ -z "$pattern" ]; then - echo "usage: spam-ascii " + echo "usage: spam-ascii (pattern `*` dumps everything)" exit 1 fi dir="$HOME/ascii" +# 0. `*` → dump the whole collection. +if [ "$pattern" = "*" ]; then + find -L "$dir" -maxdepth 1 -type f -print0 2>/dev/null \ + | sort -z \ + | xargs -0 cat + exit 0 +fi + # 1 + 2. Try exact name, then exact + common ASCII-art extensions. for candidate in \ "$dir/$pattern" \