66 lines
1.1 KiB
Bash
Executable File
66 lines
1.1 KiB
Bash
Executable File
#!/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.
|