70 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
JS_DIR = js
 | 
						|
CSS_DIR = css
 | 
						|
 | 
						|
JS_MIN = $(JS_DIR)/scripts.min.js
 | 
						|
CSS_MIN = $(CSS_DIR)/styles.min.css
 | 
						|
 | 
						|
JS_MIN_FILES := $(sort $(patsubst %.js, %.min.js, $(filter-out %.min.js, $(wildcard $(JS_DIR)/*.js))))
 | 
						|
CSS_MIN_FILES := $(sort $(patsubst %.css, %.min.css, $(filter-out %.min.css, $(wildcard $(CSS_DIR)/*.css))))
 | 
						|
 | 
						|
JS_COMPILER := java -jar bin/closure-compiler.jar --warning_level QUIET
 | 
						|
CSS_COMPILER := java -jar bin/yui-compressor.jar --type css
 | 
						|
 | 
						|
DEBUG ?= 0
 | 
						|
 | 
						|
.PHONY: all deploy clean
 | 
						|
 | 
						|
all: $(JS_MIN) $(CSS_MIN)
 | 
						|
 | 
						|
ifeq ($(DEBUG),0)
 | 
						|
%.min.js: %.js
 | 
						|
	@echo "    JS     " $@
 | 
						|
	@$(JS_COMPILER) --js $< --js_output_file $@
 | 
						|
else
 | 
						|
%.min.js: %.js
 | 
						|
	@echo "    JS     " $@
 | 
						|
	@cat $< > $@
 | 
						|
endif
 | 
						|
 | 
						|
%.min.css: %.css
 | 
						|
	@echo "    CSS    " $@
 | 
						|
	@$(CSS_COMPILER) -o $@ $<
 | 
						|
 | 
						|
$(JS_MIN): $(JS_MIN_FILES)
 | 
						|
	@echo "    CAT    " $@
 | 
						|
	@cat $^ > $@
 | 
						|
 | 
						|
$(CSS_MIN): $(CSS_MIN_FILES)
 | 
						|
	@echo "    CAT    " $@
 | 
						|
	@cat $^ > $@
 | 
						|
 | 
						|
clean:
 | 
						|
	@echo "    RM     " $(JS_MIN) $(JS_MIN_FILES) $(CSS_MIN) $(CSS_MIN_FILES)
 | 
						|
	@rm -fv $(JS_MIN) $(JS_MIN_FILES) $(CSS_MIN) $(CSS_MIN_FILES)
 | 
						|
 | 
						|
include ../deployment-config.mk
 | 
						|
 | 
						|
SSH_OPTS := -q -o ControlMaster=auto -o ControlPath=.ssh-deployment.sock
 | 
						|
 | 
						|
deploy: all
 | 
						|
	@echo "    SSH     $(WEB_SERVER)"
 | 
						|
	@ssh $(SSH_OPTS) -Nf $(WEB_SERVER)
 | 
						|
	
 | 
						|
	@echo "    RSYNC   . $(WEB_SERVER):$(HTDOCS_PATH)"
 | 
						|
	@ssh -t $(SSH_OPTS) $(WEB_SERVER) "sudo -u $(HTDOCS_USER) -v"
 | 
						|
	@rsync -aizm --delete-excluded --exclude=.ssh-deployment.sock --exclude=Makefile --exclude=*.swp \
 | 
						|
		--exclude=bin/ --include=scripts.min.js --include=styles.min.css \
 | 
						|
		--exclude=*.js --exclude=*.css --rsh="ssh $(SSH_OPTS)" \
 | 
						|
		--rsync-path="sudo -n -u $(HTDOCS_USER) rsync" \
 | 
						|
		. "$(WEB_SERVER):$(HTDOCS_PATH)" 
 | 
						|
	
 | 
						|
	@echo "    CHOWN   $(HTDOCS_USER):$(HTDOCS_USER) $(WEB_SERVER):$(HTDOCS_PATH)"
 | 
						|
	@ssh -t $(SSH_OPTS) $(WEB_SERVER) "sudo chown -R $(HTDOCS_USER):$(HTDOCS_USER) '$(HTDOCS_PATH)'"
 | 
						|
	
 | 
						|
	@echo "    CHMOD   750/640 $(WEB_SERVER):$(HTDOCS_PATH)"
 | 
						|
	@ssh -t $(SSH_OPTS) $(WEB_SERVER) "sudo find '$(HTDOCS_PATH)' -type f -exec chmod 640 {} \;; \
 | 
						|
					sudo find '$(HTDOCS_PATH)' -type d -exec chmod 750 {} \;;"
 | 
						|
	
 | 
						|
	@echo "    SSH     $(WEB_SERVER)"
 | 
						|
	@ssh -O exit $(SSH_OPTS) $(WEB_SERVER)
 |