about summary refs log tree commit diff stats
path: root/modules/home.legacy/conf/lf/commands/scripts/stripspace.sh
diff options
context:
space:
mode:
Diffstat (limited to 'modules/home.legacy/conf/lf/commands/scripts/stripspace.sh')
-rwxr-xr-xmodules/home.legacy/conf/lf/commands/scripts/stripspace.sh40
1 files changed, 40 insertions, 0 deletions
diff --git a/modules/home.legacy/conf/lf/commands/scripts/stripspace.sh b/modules/home.legacy/conf/lf/commands/scripts/stripspace.sh
new file mode 100755
index 00000000..33b1cbcf
--- /dev/null
+++ b/modules/home.legacy/conf/lf/commands/scripts/stripspace.sh
@@ -0,0 +1,40 @@
+#! /usr/bin/env dash
+
+# shellcheck source=/dev/null
+SHELL_LIBRARY_VERSION="2.1.2" . %SHELL_LIBRARY_PATH
+
+# shellcheck disable=SC2269
+f="$f"
+# shellcheck disable=SC2269
+fx="$fx"
+# shellcheck disable=SC2269
+fs="$fs"
+# shellcheck disable=SC2269
+id="$id"
+
+files=$(mktmp)
+echo "$fx" >"$files"
+
+awk_source=$(mktmp)
+cat <<OFT >"$awk_source"
+BEGIN {FS=" "}
+{for (i=1; i != NF + 1; i++)
+    if (i == NF) {
+        parts[i]=tolower(\$i);
+    } else {
+        parts[i]=tolower(\$i"_");
+    }
+}
+END {for (i in parts) printf parts[i]}
+OFT
+
+while read -r file; do
+    dirty_name=$(mktmp)
+    basename "$file" >"$dirty_name"
+    clean_name=$(awk -f "$awk_source" "$dirty_name")
+
+    [ -e "$clean_name" ] && die "file \"$clean_name\" already exists!"
+    mv "$(cat "$dirty_name")" "$clean_name" || die "Move failed"
+    lf -remote 'send reload'
+done <"$files"
+# vim: ft=sh