#!/bin/bash # 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 || { 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" bash "${namebase}.sh" fi rm -r "$(dirname "${namebase}")"