From 49bfdd1132c9f8fdf74625c92d88aa7cf0898ef7 Mon Sep 17 00:00:00 2001
From: EuAndreh <eu@euandre.org>
Date: Sun, 6 Apr 2025 13:30:46 -0300
Subject: src/bin/pb: Add initial version

---
 src/bin/pb | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)
 create mode 100755 src/bin/pb

(limited to 'src/bin')

diff --git a/src/bin/pb b/src/bin/pb
new file mode 100755
index 0000000..ed88c62
--- /dev/null
+++ b/src/bin/pb
@@ -0,0 +1,60 @@
+#!/bin/sh
+set -eu
+
+usage() {
+	cat <<-'EOF'
+		Usage: pb FILENAME.adoc [CONTENT]
+	EOF
+}
+
+
+TITLE=FIXME
+while getopts 't:' flag; do
+	case "$flag" in
+		(t)
+			TITLE="$OPTARG"
+			;;
+		(*)
+			usage >&2
+			exit 2
+			;;
+	esac
+done
+shift $((OPTIND - 1))
+
+
+FILENAME="${1:-}"
+SOURCE="${2:-}"
+eval "$(assert-arg -- "$FILENAME" 'FILENAME')"
+FILENAME="${FILENAME%.adoc}.adoc"
+
+cd "$(dirname "$(readlink -f -- "$0")")"/../../
+
+DIR=src/content/pastebins/"$(timestamp | sed 's|-|/|g')"
+OUT="$DIR"/"$FILENAME"
+
+if [ -e "$OUT" ]; then
+	printf '"%s" already exists.\n' "$OUT" >&2
+	exit 2
+fi
+
+if [ -n "$SOURCE" ]; then
+	CONTENT="$(cat "$SOURCE")"
+else
+	if [ -t 0 ]; then
+		CONTENT='FIXME'
+	else
+		printf 'Reading from STDIN...\n' >&2
+		CONTENT="$(cat)"
+		exec 0</dev/tty
+	fi
+fi
+
+mkdir -p "$DIR"
+printf '= %s\n\n[source,sh]\n----\n%s\n----\n' "$TITLE" "$CONTENT" > "$OUT"
+${VISUAL:-${EDITOR:-vi}} "$OUT"
+
+sh mkdeps.sh > deps.mk
+git reset .
+git add "$OUT" deps.mk
+git commit -m "pb(1): Auto-add \"$OUT\""
-- 
cgit v1.2.3