mu/relayout

66 lines
1.1 KiB
Bash
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# Helper to change the numerical prefixes across the repo, say if you want to
# create room between 023 and 024, and so on.
#
# Assumes there's only ever one file with any numeric prefix. If you move
# 003trace.test.cc you might need to do some manual patch-up.
set -e
if [[ $# -eq 0 && `git diff HEAD |wc -l` -gt 0 ]]
then
echo "Uncommitted changes"
exit
fi
if [[ $# -gt 0 ]] # dry run
then
git() {
echo $*
}
fi
#
index=0
ls [0-9]*.{cc,subx} |grep -v "trace.test" |sort -n |
while read file
do
while [[ $file != `printf "%03d" $index`* ]]
do
echo
index=$(($index+1))
done
echo $file
index=$(($index+1))
done > .layout
vim -c "set nu" .layout
#
root() {
echo $1 |sed 's/^[0-9]*//'
}
index=0
cat .layout |
while read file
do
if [ ! -z $file ]
then
newfile=`printf "%03d" $index``root $file`
if [[ $newfile != $file ]]
then
echo git mv $file $newfile
git mv $file $newfile
fi
fi
index=$(($index+1))
done
rm .layout
# Scenarios considered:
# Don't redo the layout if Vim exits with error.