This repository has been archived on 2024-04-07. You can view files and clone it, but cannot push or open issues or pull requests.
dotfiles/dotfiles/scripts/br

56 lines
1.4 KiB
Plaintext
Raw Normal View History

2021-12-11 00:22:16 +01:00
#!/bin/bash
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
#
# Code shuffled around by Leonardo Eugênio 2020
2020-11-11 19:08:36 +01:00
set -e -u
end(){
rm -r -- "$(dirname -- "${namebase}")"
[ $# -ne 0 ] && echo $@ >&2
exit $#
}
2020-11-11 19:08:36 +01:00
if [ $# -ne 0 ] ; then
for i in "$@" ; do
2022-10-24 22:32:37 +02:00
if test -f "$i"; then
printf "%s\n" "$i"
fi
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"
exec </dev/tty >/dev/tty ||
end 'Interactive terminal needed'
2020-11-11 19:08:36 +01:00
"$EDITOR" -- "${namebase}.2"
2020-11-11 19:08:36 +01:00
sed -i -- '1d' "${namebase}.2"
! 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
{
echo '# Please review/modify this script or empty it to do nothing'
echo 'run(){'
2022-02-23 00:22:14 +01:00
echo ' mkdir -p "$(dirname "$2")"'
echo ' mv -T -- "$1" "$2"'
echo '}'
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 'run'
} > "${namebase}.sh"
"$EDITOR" -- "${namebase}.sh"
sh -e -- "${namebase}.sh"
2020-11-11 19:08:36 +01:00
end # exit normaly