#!/bin/sh

#  bf_compact source_dir [wordlist_name]
#
#    use to compact wordlist.db
#    replaces original directory with new one
#    renames original directory with '.old' extension

# $Id: bf_compact,v 1.12 2005/01/18 10:50:26 m-a Exp $

set -e # die on errors

if [ -z "$1" ] ; then
    echo usage: bf_compact source_dir [wordlist_name]
    exit 1
fi

BOGOHOME="$1"

if [ ! -d $BOGOHOME ] ; then
    echo "$BOGOHOME must be a directory. Abort."
    exit 1
fi

while true; do
    case $BOGOHOME in
	*/) BOGOHOME=${BOGOHOME%/} ;;
	*)  break ;;
    esac
done

if [ -z "$2" ] ; then
    FILE="wordlist.db"
else
    FILE="$2"
fi

TEMP="bf_compact.$$"

if ! mkdir "$TEMP" ; then
    echo "Cannot create directory $TEMP. Abort."
    exit 1
fi

if test -f "$BOGOHOME"/DB_CONFIG ; then
    cp -p "$BOGOHOME"/DB_CONFIG "$TEMP"/
fi
bogoutil -d "$BOGOHOME"/"$FILE" | bogoutil -l $TEMP/"$FILE"

#checkpoint and remove unneeded log files
bogoutil --db-prune=$TEMP

mv "$BOGOHOME" "$BOGOHOME.old"
mv  $TEMP      "$BOGOHOME"
