about summary refs log tree commit diff stats
path: root/home-manager/config/lf/commands/scripts/stripspace
diff options
context:
space:
mode:
authorSoispha <soispha@vhack.eu>2023-05-06 22:10:50 +0200
committerSoispha <soispha@vhack.eu>2023-05-09 19:33:23 +0200
commite24fdf517619e84fbba268b0d90627b185665cd6 (patch)
treefee010c3a92fa0ef9ce22b6b1731a638fd6e9484 /home-manager/config/lf/commands/scripts/stripspace
parentFix(hm/conf/git): Remove credential cache (diff)
downloadnixos-config-e24fdf517619e84fbba268b0d90627b185665cd6.zip
Refactor(hm/conf/lf): Separate keybindings and commands
Diffstat (limited to 'home-manager/config/lf/commands/scripts/stripspace')
-rwxr-xr-xhome-manager/config/lf/commands/scripts/stripspace32
1 files changed, 32 insertions, 0 deletions
diff --git a/home-manager/config/lf/commands/scripts/stripspace b/home-manager/config/lf/commands/scripts/stripspace
new file mode 100755
index 00000000..65dabc4c
--- /dev/null
+++ b/home-manager/config/lf/commands/scripts/stripspace
@@ -0,0 +1,32 @@
+#! /usr/bin/env dash
+# shellcheck disable=SC2086
+# shellcheck source=/dev/null
+# . ~/.local/lib/shell/lib
+. %SHELL_LIBRARY_PATH
+
+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