about summary refs log tree commit diff stats
path: root/modules/by-name/lf/lf/commands/scripts/stripspace.sh
blob: 33b1cbcf2fd22840979cfd6f762d8bcb823535cd (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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