#!/bin/bash
START=0
END=0
if [ $# -ne 2 ]
then
echo "Usage: $0 <postgresql sql dump> <db_name>" >&2
exit 1
fi
DB_FILE=$1
DB_NAME=$2
if [ ! -f $DB_FILE -o ! -r $DB_FILE ]
then
echo "error: $DB_FILE not found or not readable" >&2
exit 2
fi
while read LINE
do
LINE_NUMBER=`echo $LINE | cut -d: -f1`
if [ $START -eq 0 ]
then
START=$(($LINE_NUMBER+1))
else
END=$(($LINE_NUMBER+1))
fi
done < <(egrep -n "\\connect\ |PostgreSQL\ database\ dump\ complete" $DB_FILE | grep -m 1 -A 1 "$DB_NAME")
if [ $START -eq 0 -o $END -eq 0 ]
then
echo "error: start or end not found" >&2
exit 3
fi
DB_LENGTH=`expr $END - $START`
head -$END $DB_FILE | tail -$DB_LENGTH