2020-11-23 22:24:43 +01:00
|
|
|
#!/bin/sh
|
2020-11-11 19:08:36 +01:00
|
|
|
# Copyright Cédric Picard 2014 -- License WTFPL
|
|
|
|
# Inspired by Ranger's -- See https://github.com/hut/ranger
|
2020-11-12 00:21:13 +01:00
|
|
|
#
|
|
|
|
# Code shuffled around by Leonardo Eugênio 2020
|
2020-11-11 19:08:36 +01:00
|
|
|
|
|
|
|
set -e -u
|
|
|
|
|
2020-11-12 00:21:13 +01:00
|
|
|
end(){
|
|
|
|
rm -r -- "$(dirname -- "${namebase}")"
|
|
|
|
[ $# -ne 0 ] && echo $@ >&2
|
|
|
|
exit $#
|
|
|
|
}
|
|
|
|
|
2020-11-11 19:08:36 +01:00
|
|
|
if [ $# -ne 0 ] ; then
|
2020-11-12 00:21:13 +01:00
|
|
|
for i in "$@" ; do
|
|
|
|
printf "%s\n" "$i"
|
|
|
|
done | "$0"
|
2020-11-11 19:08:36 +01:00
|
|
|
exit $?
|
|
|
|
fi
|
|
|
|
|
|
|
|
EDITOR="${EDITOR:-vi}"
|
|
|
|
|
|
|
|
namebase="$(mktemp -d)/blkrn"
|
|
|
|
echo '# Modify filenames without removing any line, quitting aborts' \
|
|
|
|
> "${namebase}.2"
|
|
|
|
tee -- "${namebase}.1" >> "${namebase}.2"
|
2020-11-12 00:21:13 +01:00
|
|
|
exec </dev/tty >/dev/tty ||
|
|
|
|
end 'Interactive terminal needed'
|
2020-11-11 19:08:36 +01:00
|
|
|
|
2020-11-12 00:21:13 +01:00
|
|
|
"$EDITOR" -- "${namebase}.2"
|
2020-11-11 19:08:36 +01:00
|
|
|
sed -i -- '1d' "${namebase}.2"
|
|
|
|
|
2020-11-12 00:21:13 +01:00
|
|
|
! diff -- "${namebase}.1" "${namebase}.2" &> /dev/null || end "no changes"
|
|
|
|
[ `wc -l < "${namebase}.1"` -eq `wc -l < "${namebase}.2"` ] || end "Wrong number of lines"
|
2020-11-11 19:08:36 +01:00
|
|
|
|
2020-11-12 00:21:13 +01:00
|
|
|
{
|
|
|
|
echo '# Please review/modify this script or empty it to do nothing'
|
|
|
|
while read -r l1 <&3 && read -r l2 <&4; do
|
2020-11-23 22:24:43 +01:00
|
|
|
[ "$l1" = "$l2" ] || printf "%s\n%s\n" "$l1" "$l2"
|
|
|
|
done 3<"${namebase}.1" 4<"${namebase}.2" |
|
|
|
|
sed 's/\([\\"$`]\)/\\\1/g;s/^.*$/"&"/' |
|
|
|
|
xargs -d"\n" -L2 echo 'mv -Ti --'
|
2020-11-12 00:21:13 +01:00
|
|
|
} > "${namebase}.sh"
|
|
|
|
|
|
|
|
"$EDITOR" -- "${namebase}.sh"
|
|
|
|
sh -e -- "${namebase}.sh"
|
2020-11-11 19:08:36 +01:00
|
|
|
|
2020-11-12 00:21:13 +01:00
|
|
|
end # exit normaly
|