"""Deployment with Fabric.""" from fabric import task @task def offline(c): """Release offline.voicegardens.org.""" print("Releasing offline.voicegardens.org ...") with c.cd("/var/www/offline.voicegardens.org"): c.run("git pull origin offline") c.run("sudo supervisorctl restart voicegardens:offline") c.run("sudo systemctl restart nginx") print("Released <3") @task def voicegardens(c): """Release voicegardens.org.""" print("Releasing voicegardens.org ...") with c.cd("/var/www/voicegardens.org"): c.run("git pull origin main") c.run("sudo supervisorctl restart voicegardens:online") c.run("sudo systemctl restart nginx") print("Released <3") @task def dailycron(c): """Copy new daily crontab.""" print("Copy over new daily crontab ...") # See https://github.com/fabric/fabric/issues/1750 c.put("./bin/voicegardens-cron-daily", remote="./") c.sudo("mv voicegardens-cron-daily /etc/cron.daily") c.sudo("chown root:root /etc/cron.daily/voicegardens-cron-daily") print("New daily cron in place <3") @task def hourlycron(c): """Copy new hourly crontab.""" print("Copy over new hourly crontab ...") # See https://github.com/fabric/fabric/issues/1750 c.put("./bin/voicegardens-cron-hourly", remote="./") c.sudo("mv voicegardens-cron-hourly /etc/cron.hourly") c.sudo("chown root:root /etc/cron.hourly/voicegardens-cron-hourly") print("New hourly cron in place <3") @task def cleanarchives(c): """Remove all archives.""" print("Removing the offline.voicegardens.org archives ...") with c.cd("/var/www/offline.voicegardens.org"): c.run("rm -rf ./voicegardens/archive/*") print("Removing the voicegardens.org archives ...") with c.cd("/var/www/voicegardens.org"): c.run("rm -rf ./voicegardens/archive/*") print("Deleted <3")