aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2013-04-26 04:34:45 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2013-04-26 04:35:14 +0200
commit9c655eeace1648695287cb47e5dfc63915e283c3 (patch)
treeda5aa51b3f2eaa0084ff56fe50f2232c1d8b69f0 /Makefile
parentIn fact, we do want jquery 1.9.1 for older devices. (diff)
downloadzmusic-ng-9c655eeace1648695287cb47e5dfc63915e283c3.tar.xz
zmusic-ng-9c655eeace1648695287cb47e5dfc63915e283c3.zip
Deployment is now more streamlined.
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile55
1 files changed, 36 insertions, 19 deletions
diff --git a/Makefile b/Makefile
index 8f5e318..9d43b36 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
include server.cfg
-.PHONY: all clean upload deploy update-collection
+.PHONY: all clean deploy update-collection
all:
@$(MAKE) -C frontend
@@ -9,24 +9,41 @@ clean:
@$(MAKE) -C frontend clean
@$(MAKE) -C backend clean
-upload: all
- @echo " RSYNC $(SERVER):$(SERVER_UPLOAD_PATH)"
- @rsync -aizm --delete-excluded --exclude=*.cfg --exclude=*.conf --filter="P app.cfg" --exclude=*.swp --exclude=.git* --exclude=frontend/bin/ \
- --exclude=Makefile --exclude=*.pyc --include=scripts.min.js --include=styles.min.css --exclude=*.js --exclude=*.css \
- . "$(SERVER):$(SERVER_UPLOAD_PATH)"
+SSH_OPTS := -o ControlMaster=auto -o ControlPath=.ssh-deployment.sock
-deploy: upload
- @echo " DEPLOY $(SERVER):$(SERVER_DEPLOY_PATH)"
- @ssh -t "$(SERVER)" "set -ex; \
- umask 027; \
- sudo rsync -rim --delete --filter='P zmusic.db' '$(SERVER_UPLOAD_PATH)/' '$(SERVER_DEPLOY_PATH)'; \
- sudo chown -R uwsgi:nginx '$(SERVER_DEPLOY_PATH)'; \
- sudo find '$(SERVER_DEPLOY_PATH)' -type f -exec chmod 640 {} \;; \
- sudo find '$(SERVER_DEPLOY_PATH)' -type d -exec chmod 750 {} \;; \
- sudo /etc/init.d/uwsgi.zmusic restart"
+deploy: all
+ @echo " SSH $(WEB_SERVER)"
+ @ssh $(SSH_OPTS) -Nf $(WEB_SERVER)
+
+ @echo " RSYNC frontend/ $(WEB_SERVER):$(SERVER_STATIC_PATH)"
+ @ssh -t $(SSH_OPTS) $(WEB_SERVER) "sudo -u $(SERVER_STATIC_USER) -v"
+ @rsync -aizm --delete-excluded --exclude=Makefile --exclude=*.swp --exclude=bin/ --exclude=Makefile \
+ --include=scripts.min.js --include=styles.min.css --exclude=*.js --exclude=*.css --rsh="ssh $(SSH_OPTS)" \
+ --rsync-path="sudo -n -u $(SERVER_STATIC_USER) rsync" frontend/ "$(WEB_SERVER):$(SERVER_STATIC_PATH)"
+
+ @echo " CHOWN $(SERVER_STATIC_USER):$(SERVER_APP_USER) $(WEB_SERVER):$(SERVER_STATIC_PATH)"
+ @ssh -t $(SSH_OPTS) $(WEB_SERVER) "sudo chown -v -R $(SERVER_STATIC_USER):$(SERVER_APP_USER) '$(SERVER_STATIC_PATH)'"
+
+ @echo " RSYNC backend/zmusic $(WEB_SERVER):$(SERVER_APP_PATH)"
+ @ssh -t $(SSH_OPTS) $(WEB_SERVER) "sudo -u $(SERVER_APP_USER) -v"
+ @rsync -aizm --delete-excluded --filter="P zmusic.db" --filter="P app.cfg" --exclude=*.swp --exclude=*.pyc \
+ --rsh="ssh $(SSH_OPTS)" --rsync-path="sudo -n -u $(SERVER_APP_USER) rsync" backend/zmusic/ "$(WEB_SERVER):$(SERVER_APP_PATH)"
+
+ @echo " CHOWN $(SERVER_APP_USER):$(SERVER_APP_USER) $(WEB_SERVER):$(SERVER_APP_PATH)"
+ @ssh -t $(SSH_OPTS) $(WEB_SERVER) "sudo chown -v -R $(SERVER_APP_USER):$(SERVER_APP_USER) '$(SERVER_APP_PATH)'"
+
+ @echo " CHMOD 750/640 $(WEB_SERVER):$(SERVER_APP_PATH) $(WEB_SERVER):$(SERVER_STATIC_PATH)"
+ @ssh -t $(SSH_OPTS) $(WEB_SERVER) "sudo find '$(SERVER_APP_PATH)' '$(SERVER_STATIC_PATH)' -type f -exec chmod -v 640 {} \;; \
+ sudo find '$(SERVER_APP_PATH)' '$(SERVER_STATIC_PATH)' -type d -exec chmod -v 750 {} \;;"
+
+ @echo " UWSGI restart $(WEB_SERVER)"
+ @ssh -t $(SSH_OPTS) $(WEB_SERVER) "sudo /etc/init.d/uwsgi restart"
+
+ @echo " SSH $(WEB_SERVER)"
+ @ssh -O exit $(SSH_OPTS) $(WEB_SERVER)
update-collection:
- @echo " RSYNC $(SERVER):$(SERVER_COLLECTION_PATH)"
- @rsync -avzPi --delete-excluded --delete-after --fuzzy --exclude=.directory '$(LOCAL_COLLECTION_PATH)/' '$(SERVER):$(SERVER_COLLECTION_PATH)'
- @echo " SCAN $(SERVER)"
- @curl 'http://$(SERVER)/scan?username=$(ADMIN_USERNAME)&password=$(ADMIN_PASSWORD)'
+ @echo " RSYNC $(LOCAL_COLLECTION_PATH) $(UPLOAD_SERVER):$(UPLOAD_SERVER_PATH)"
+ @rsync -avzPi --delete-excluded --delete-after --fuzzy --exclude=.directory '$(LOCAL_COLLECTION_PATH)/' '$(UPLOAD_SERVER):$(UPLOAD_SERVER_PATH)'
+ @echo " SCAN $(WEB_SERVER)"
+ @curl 'http://$(WEB_SERVER)/scan?username=$(ADMIN_USERNAME)&password=$(ADMIN_PASSWORD)'