From f8d09c5cfd6d1d9595b64547dc9d29c63e40c5f2 Mon Sep 17 00:00:00 2001 From: Jacob McDonnell Date: Thu, 5 Dec 2024 13:49:22 -0500 Subject: Moved .local/bin to scripts --- scripts/b | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100755 scripts/b (limited to 'scripts/b') diff --git a/scripts/b b/scripts/b new file mode 100755 index 0000000..596b320 --- /dev/null +++ b/scripts/b @@ -0,0 +1,22 @@ +#!/usr/bin/env bash + +# Select `b` (or before it, or after) and assign Acme `addr` to selection +echo addr=dot | 9p write acme/$winid/ctl + +# Mark the current line and change `addr` to it +echo -n '__MARKER__' | 9p write acme/$winid/data +echo -n '/^.*__MARKER__/' | 9p write acme/$winid/addr + +# Process the line +line=$(9p read acme/$winid/data | sed 1q) +indentation=$(echo "$line" | sed -E 's/^( *).*$/\1/') +before_marker=$(echo "$line" | sed -E 's/b?__MARKER__.*$/{/') +after_marker=$(echo "$line" | awk -F'__MARKER__' '{print $2}') +[ "$after_marker" == "b" ] && after_marker="" + +# Compose the final block +block="$before_marker"$'\n'"$indentation "$'\n'"$indentation}$after_marker" + +# Change `addr` one more time and replace original line with my block +echo -n '/^.*__MARKER__.*\n?/' | 9p write acme/$winid/addr +echo "$block" | 9p write acme/$winid/data \ No newline at end of file -- cgit v1.2.3