# Deploy to current *mamweb-test* directory
deploy: venv_check
	@if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi
	@if [ `readlink -f .` != "/aux/akce/mam/www/mamweb-test" ]; then echo "Only possible in directory mamweb-test"; exit 1; fi
	@echo "Installing version from origin/${BRANCH} ..."
	git pull origin ${BRANCH}
	git clean -f
	make install
	./manage.py migrate 
	./manage.py collectstatic --noinput
	(chown -R :mam . || true )
	(chmod -R g+rX,go-w . || true )
	@echo Restarting systemd unit
	systemctl --user restart mamweb-test.service
	@echo Done.

# Deploy to current *mamweb-prod* directory
deploy_prod: venv_check
	@if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi
	@if [ `readlink -f .` != "/aux/akce/mam/www/mamweb-prod" ]; then echo "Only possible in directory mamweb-prod"; exit 1; fi
	@echo "Backing up production DB ..."
	( cd -P .. && ./backup_prod_db.sh )
	@echo "Installing version from origin/master ..."
	git pull origin master
	git clean -f
	make install
	./manage.py migrate 
	./manage.py collectstatic --noinput
	(chown -R :mam . || true )
	(chmod -R g+rX,go-w . || true )
	@echo Restarting systemd user unit for MaM web
	systemctl --user restart mamweb-prod.service
	@echo Done.


sync_prod_flatpages: venv_check 
	@echo Downloading current version of flatpages from mamweb-prod.
	ssh mam-web@gimli.ms.mff.cuni.cz \
	"cd /akce/mam/www/mamweb-prod; . env/bin/activate; ./manage.py dumpdata flatpages --indent=2 > flat.json; ./fix_json.py flat.json flat_fixed.json"
	rsync -ave ssh mam-web@gimli.ms.mff.cuni.cz:/akce/mam/www/mamweb-prod/flat_fixed.json data/flat.json
	@echo "Applying downloaded flatpages."
	./manage.py loaddata data/flat.json
	@echo "Done."

# Sync test media directory with production
sync_test_media:
	@if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi
	@if [ `readlink -f .` != "/aux/akce/mam/www/mamweb-test" ]; then echo "Only possible in /akce/mam/www/mamweb-test"; exit 1; fi
	rsync -av --delete /akce/mam/www/mamweb-prod/media/ ./media

# Sync (with drop) test database with production database
sync_test_db_aggressive:
	@if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi
	pg_dump mam_test > dump-test-`date +"%Y%m%d_%H%M"`.sql
	pg_dump -Fc mam_prod > dump-prod.sql
	@# I am not sure which shell is used, so I am calling bash to make sure
	psql mam_test -c 'DROP OWNED BY "mam-web";'
	pg_restore -c --if-exists -d mam_test dump-prod.sql
	rm dump-prod.sql
	psql mam_test -c "UPDATE django_site SET name='MaMweb (test)', domain='mam-test.ks.matfyz.cz' WHERE id=1"
	@echo Done.

# Sync test with production
# HACK ALERT: using aggressive variant, due to the schemas being too different.
sync_test: sync_test_media sync_test_db_aggressive