#!/bin/bash
# Create script for exporting a new template
# DDB 2018-01-28
# under GPL license
#

export TEMPLATE=${DOMAIN}mod2

psql -X $TEMPLATE -c "delete from user_local_pref"

pg_dump -O -U dany -s $TEMPLATE|grep -v "COMMENT ON SCHEMA public IS 'Standard public schema';" |sed "/^--/d" > schema.sql
sed -i -e "/COMMENT ON EXTENSION/d" schema.sql
sed -i -e "/CREATE EXTENSION/d" schema.sql
awk '/SEQUENCE/,/;/  { print $0;}' < schema.sql > sequence.sql
awk '/CREATE DOMAIN/,/;/ { print $0;}' < schema.sql > table.sql
awk '/CREATE TABLE/,/;/ { print $0;}' < schema.sql >> table.sql
awk '/CREATE VIEW/,/;/ { print $0;}' < schema.sql > view.sql
awk '/INDEX/,/;/ { print $0;}' < schema.sql > index.sql
(
echo " SET client_encoding = 'utf8';"
echo " SET check_function_bodies = false;"
echo " SET client_min_messages = warning;"
echo "SET search_path = public, pg_catalog;"
)> constraint.sql


awk '/ALTER TABLE/,/;/ { print $0;}' < schema.sql >> constraint.sql
awk '/CREATE TRIGGER/,/;/ { print $0;}' < schema.sql >> constraint.sql
awk '/COMMENT ON CONSTRAINT/,/;/ { print $0;}' < schema.sql >> constraint.sql
awk '/COMMENT ON TRIGGER/,/;/ { print $0;}' < schema.sql >> constraint.sql

# function in XML
## awk 'BEGIN{print "<PROCEDURES>";} /CREATE FUNCTION/,/\$\$;/ { if (/CREATE FUNCTION/) {print "<procedure>";} if (/\$\$;/) {print "</procedure>";} print $0;} END { print "</PROCEDURES>";}' < schema.sql 
awk '/CREATE FUNCTION/,/\$\$;/ { print $0;}' < schema.sql > function.sql
awk '/COMMENT/,/;/ {print $0;}' < schema.sql > comment.sql

sed -i -e "/REVOKE /d" -e "/GRANT /d" -e "/ALTER TABLE.*/d" -e "/ADD CONSTRAINT/d" -e "/CREATE PROCEDURAL/d" -e "/CREATE TRIGGER/d" -e "/COMMENT ON CONSTRAINT/d" -e "/COMMENT ON TRIGGER/d" schema.sql


grep setval schema.sql >> sequence.sql
echo "set search_path = public,comptaproc,pg_catalog ;" > data.sql
pg_dump -O -U dany --data-only --column-inserts  -O ${TEMPLATE}|sed "/^--/d" | sed -e "/SET search_path/d" >> data.sql