current commit
200426.5 · initial commit of ~/bin
#!/bin/sh

dry_run=true
while [ $# -gt 0 ]; do
  case $1 in
    --do-it) dry_run= ; shift ;;
    *) break ;;
  esac
done
if [ $# != 1 ]; then
  echo "Usage: $(basename $0) [--do-it] PG_SCHEMA_NAME" >&2
  exit 1
fi

db="$1"
if [ -z "$dry_run" ]; then
  psql "$db" -c '\dn' \
    | awk '{print $1}' \
    | grep -E '^[a-z]' \
    | grep -E -v '^public$' \
    | xargs printf "DROP SCHEMA %s CASCADE;\n" \
    | while read -r sql; do psql "$db" -c "$sql"; done
else
  psql "$db" -c '\dn' \
    | awk '{print $1}' \
    | grep -E '^[a-z]' \
    | grep -E -v '^public$' \
    | xargs printf "DROP SCHEMA %s CASCADE;\n"
  echo "dry run complete; pass --do-it to execute" >&2
fi