blob: d86f7a8578812c7289589cdd8349d18f0f63b648 (
plain)
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
41
42
|
#!/bin/sh
# Copyright Cédric Picard 2014 -- License WTFPL
# Inspired by Ranger's -- See https://github.com/hut/ranger
set -e -u
if [ $# -ne 0 ] ; then
{ for i in "$@" ; do printf "%s\n" "$i" ; done } | "$0"
exit
fi
EDITOR="${EDITOR:-vi}"
namebase="$(mktemp -d)/blkrn"
cat > "${namebase}.1"
exec </dev/tty >/dev/tty || { echo 'Interactive terminal needed' >&2; exit; }
cp "${namebase}.1" "${namebase}.2"
"$EDITOR" "${namebase}.2"
if [ $(wc -l < "${namebase}.1") -ne $(wc -l < "${namebase}.2") ] ; then
rm -r "$(dirname "${namebase}")"
echo "Wrong number of lines" >&2
exit 1
fi
sed -i "s/'/'\"'\"'/g" "${namebase}.1" "${namebase}.2"
paste -d "\n" "${namebase}.1" "${namebase}.2" | while read -r input ; do
read -r output
if [ "$input" != "$output" ] ; then
echo "mv -- '$input' '$output'"
fi
done > "${namebase}.sh"
if [ "$(stat --printf="%s" "${namebase}.sh")" -ne 0 ] ; then
"$EDITOR" "${namebase}.sh"
sh -e -- "${namebase}.sh"
fi
rm -r "$(dirname "${namebase}")"
|