#!/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]* |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.