Skip to content

Commit

Permalink
Add script to clean up datadirs
Browse files Browse the repository at this point in the history
  • Loading branch information
sipa committed Feb 10, 2013
1 parent 6749082 commit 33c055c
Showing 1 changed file with 59 additions and 0 deletions.
59 changes: 59 additions & 0 deletions contrib/tidy_datadir.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
#!/bin/bash

if [ -d "$1" ]; then
cd "$1"
else
echo "Usage: $0 <datadir>" >&2
echo "Removes obsolete Bitcoin database files" >&2
exit 1
fi

LEVEL=0
if [ -f wallet.dat -a -f addr.dat -a -f blkindex.dat -a -f blk0001.dat ]; then LEVEL=1; fi
if [ -f wallet.dat -a -f peers.dat -a -f blkindex.dat -a -f blk0001.dat ]; then LEVEL=2; fi
if [ -f wallet.dat -a -f peers.dat -a -f coins/CURRENT -a -f blktree/CURRENT -a -f blocks/blk00000.dat ]; then LEVEL=3; fi
if [ -f wallet.dat -a -f peers.dat -a -f chainstate/CURRENT -a -f blocks/index/CURRENT -a -f blocks/blk00000.dat ]; then LEVEL=4; fi

case $LEVEL in
0)
echo "Error: no Bitcoin datadir detected."
exit 1
;;
1)
echo "Detected old Bitcoin datadir (before 0.7)."
echo "Nothing to do."
exit 0
;;
2)
echo "Detected Bitcoin 0.7 datadir."
;;
3)
echo "Detected Bitcoin pre-0.8 datadir."
;;
4)
echo "Detected Bitcoin 0.8 datadir."
;;
esac

FILES=""
DIRS=""

if [ $LEVEL -ge 3 ]; then FILES=$(echo $FILES blk????.dat blkindex.dat); fi
if [ $LEVEL -ge 2 ]; then FILES=$(echo $FILES addr.dat); fi
if [ $LEVEL -ge 4 ]; then DIRS=$(echo $DIRS coins blktree); fi

for FILE in $FILES; do
if [ -f $FILE ]; then
echo "Deleting: $FILE"
rm -f $FILE
fi
done

for DIR in $DIRS; do
if [ -d $DIR ]; then
echo "Deleting: $DIR/"
rm -rf $DIR
fi
done

echo "Done."

0 comments on commit 33c055c

Please sign in to comment.