diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2013-04-26 04:34:45 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2013-04-26 04:35:14 +0200 |
commit | 9c655eeace1648695287cb47e5dfc63915e283c3 (patch) | |
tree | da5aa51b3f2eaa0084ff56fe50f2232c1d8b69f0 /Makefile | |
parent | In fact, we do want jquery 1.9.1 for older devices. (diff) | |
download | zmusic-ng-9c655eeace1648695287cb47e5dfc63915e283c3.tar.xz zmusic-ng-9c655eeace1648695287cb47e5dfc63915e283c3.zip |
Deployment is now more streamlined.
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 55 |
1 files changed, 36 insertions, 19 deletions
@@ -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)' |