# get arguments
while [ "$1" != "" ]; do
    case $1 in
        -d | --destination )    shift
                                dest=$1
                                ;;
        -s | --site )           shift
                                site=$1
                                ;;
        -m | --mysql )          shift
                                mysqldb=$1
                                ;;
        -p | --postgres )       shift
                                postgresdb=$1
                                ;;
        * )                     echo "Unknown argument $1."
                                exit 1
    esac
    shift
done

# complain if no destination specified
if [ "$dest" == "" ]; then
  echo "Missing destination."
  exit 1
fi

# set and create backup folder
folder="$dest/`date +%Y%m%d%H%M%S`"
mkdir -p $folder

# backup website
if [ "$site" != "" ]; then
  echo "Backing up site $site to $folder/www.tar.gz..."
  cd /var/www
  tar -czf $folder/www.tar.gz $site
fi

# backup mysql database
if [ "$mysqldb" != "" ]; then
  echo "Backing up database $mysqldb to $folder/db.sql.gz..."
  mysqldump -u $mysqldb $mysqldb | gzip > $folder/db.sql.gz
fi

# backup postgres database
if [ "$postgresdb" != "" ]; then
  echo "Backing up database $postgresdb to $folder/db.sql.gz..."
  pg_dump -U $postgresdb $postgresdb | gzip > $folder/db.sql.gz
fi

# delete old backups keeping 5
echo "Deleting old backups..."
cd $dest
ls -t | sed 1,5d | while read folder; do rm -r $folder; done

# done
echo "Done."

