diff --git a/make/upload.mk b/make/upload.mk index eaa5b3c6..74abfdc6 100644 --- a/make/upload.mk +++ b/make/upload.mk @@ -1,119 +1,47 @@ -# -- general, and important -LOCAL_PROJECT = $(PROJECT) +UPLOAD_SH ?= $(MOD_SCRIPT_DIR)/upload.sh +UPLOAD_PROJECT ?= $(PROJECT) +UPLOAD_MODULE ?= $(UPLOAD_PROJECT) +UPLOAD_FILE_MODE ?= 640 +UPLOAD_DIR_MODE ?= 750 +UPLOAD_GROUP ?= $(shell id -ng) +UPLOAD_USER ?= $(shell id -nu) +UPLOAD_HOST_LOGIN ?= root +UPLOAD_HOST ?= www.jannet.de +UPLOAD_VHOST_ROOT ?= /srv/www/htdocs/jannet.de_443 +UPLOAD_SERVER_PATH ?= proj/$(UPLOAD_MODULE) +UPLOAD_FILE_ROOT ?= $(UPLOAD_VHOST_ROOT)/proj/$(UPLOAD_MODULE) +UPLOAD_TARGET_PREFIX ?= rsync_ssh://$(UPLOAD_HOST_LOGIN)@$(UPLOAD_HOST):$(UPLOAD_FILE_ROOT)/ +UPLOAD_LAST_VERSION_FILE ?= LAST_UPLOADED_VERSION +UPLOAD_LAST_VERSION ?= $(shell cat $(UPLOAD_LAST_VERSION_FILE) 2>/dev/null) +#UPLOAD_FILES ?= +REMOTE_TARGETS ?= \ + $(foreach f,$(UPLOAD_FILES),$(UPLOAD_TARGET_PREFIX)$f:$(UPLOAD_FILE_MODE):$(UPLOAD_DIR_MODE):$(UPLOAD_USER).$(UPLOAD_GROUP)) -TARGET_HOST = cvs.jannet.de -UPLOAD_DOCUMENT_ROOT = /usr/local/httpd/htdocs -UPLOAD_VIRTUAL_SERVER_ROOT = www.jannet.de_443 -TARGET_USER = root -TARGET_GROUP = root -TARGET_FILE_MODE = 755 -TARGET_DIR_MODE = 755 -DOWNLOAD_SERVER = https://www.jannet.de:443 -URL_RELATIVE_PATH = $(CUSTOMER)/projects/$(LOCAL_PROJECT)/download -SSI_DOWNLOAD_TMPL = $(MODDIR)/doctmpl/html/ssi/ssi_download.html.tmpl -DOWNLOAD_REFERRER_DIRS = $(addprefix $(UPLOAD_DOCUMENT_ROOT)/, \ - $(UPLOAD_VIRTUAL_SERVER_ROOT)/$(URL_RELATIVE_PATH) \ -) +all: +upload: upload.dist -# legacy from cfg_xxx.mk -DOWNLOADDIRS ?= root@cvs.jannet.de:/usr/local/httpd/htdocs/www.jannet.de_443/$(CUSTOMER)/projects/$(PROJECT) -FTP_PUB_DIR_ABS ?= $(JANNET_PROJ_DIR)/$(PROJECT) +rsync_ssh\://% ftp\://% scp\://%: + make $(shell echo $(notdir $@) | sed 's/:.*//g') + $(UPLOAD_SH) $(shell echo $(notdir $@) $@ | sed 's/:.*//g') $@ -# -- general, and less important -DISTDIR = $(TOPDIR)/dist -TMPHTML=$(DISTDIR)/html -DOWNLOAD_URLDIR=$(DOWNLOAD_SERVER)/$(URL_RELATIVE_PATH) -TARGET_DIR = $(UPLOAD_DOCUMENT_ROOT)/$(UPLOAD_VIRTUAL_SERVER_ROOT)/$(URL_RELATIVE_PATH) -SSI_PREFIX = $(TMPHTML)/ssi_download_ +upload.dist: $(UPLOAD_FILES) +ifneq ($(UPLOAD_LAST_VERSION),$(VERSION)) + make $(REMOTE_TARGETS) + echo $(VERSION) > $(UPLOAD_LAST_VERSION_FILE) + cvs commit -m "o $(VERSION)" $(UPLOAD_LAST_VERSION_FILE) +endif + touch $@.done -SSI_FILES = $(addsuffix .html,$(addprefix $(SSI_PREFIX),$(notdir $(PCKG_FILES)))) -PCKG_FILES = $(addprefix $(PCKG_DIR)/,$(DIST_FILES)) +is-uploaded: +ifneq ($(UPLOAD_LAST_VERSION),$(VERSION)) + echo $(VERSION) > $(UPLOAD_LAST_VERSION_FILE) + cvs add $(UPLOAD_LAST_VERSION_FILE) + cvs commit -m "initial checkin" $(UPLOAD_LAST_VERSION_FILE) +endif + touch upload.dist.done -$(TMPHTML): - mkdir -p $(TMPHTML) - test -d $(TMPHTML) && rm -rf $(TMPHTML)/* +clean: upload.clean -define generate_ssi - STEM=$(notdir $@) ;\ - DIR=$(dir $@) ;\ - if [ -n "`echo $(PROJECT_DESCR) | grep '\win'`" ]; then \ - PLATF=" for Windows" ;\ - elif [ -n "`echo $(PROJECT_DESCR) | grep '\lx'`" ]; then \ - PLATF=" for Linux" ;\ - fi; \ - if [ -n "`echo $(PROJECT_DESCR) | grep '\-src'`" ]; then \ - DISTTYPE=", Source Distribution" ;\ - elif [ -n "`echo $(PROJECT_DESCR) | grep '\-bin'`" ]; then \ - DISTTYPE=", Binary Distribution" ;\ - fi; \ - EXPLANATION="$(PROJECT_DESCR)$$PLATF$$DISTTYPE";\ - SIZE=`ls -l $< | awk '{print $$5}'`;\ - FILENAME=`basename $<` ;\ - cat $(SSI_DOWNLOAD_TMPL) | sed -e "\ - s/_VERSION_/$(LOCAL_DIST_VERSION)/g;\ - s/_PROJECT_/$(LOCAL_PROJECT)/g;\ - s/_TARGET_STEM_//g;\ - s/_FILENAME_/$$FILENAME/g;\ - s/_DATE_/$(shell date +"%Y-%m-%d")/g;\ - s/_EXPLANATION_/$$EXPLANATION/g;\ - s%_URLDIR_%$(DOWNLOAD_URLDIR)%g;\ - s/_SIZE_/$$SIZE/g;\ - " > $@ -endef - -# $(TMPHTML) $(SSI_DOWNLOAD_TMPL) -$(SSI_PREFIX)%.html: $(PCKG_DIR)/% - STEM=$(notdir $@) ;\ - DIR=$(dir $@) ;\ - mkdir -p $$DIR ;\ - if [ -n "`echo $@ | grep 'win'`" ]; then \ - PLATF=" for Windows" ;\ - elif [ -n "`echo $@ | grep 'lx'`" ]; then \ - PLATF=" for Linux" ;\ - fi; \ - if [ -n "`echo $@ | grep '\-src'`" ]; then \ - DISTTYPE=", Source Distribution" ;\ - elif [ -n "`echo $@ | grep '\-bin'`" ]; then \ - DISTTYPE=", Binary Distribution" ;\ - fi; \ - EXPLANATION="$(PROJECT_DESCR)$$PLATF$$DISTTYPE";\ - SIZE=`ls -l $< | awk '{print $$5}'`;\ - FILENAME=$(notdir $<) ;\ - cat $(SSI_DOWNLOAD_TMPL) | sed -e "\ - s/_VERSION_/$(LOCAL_DIST_VERSION)/g;\ - s/_PROJECT_/$(LOCAL_PROJECT)/g;\ - s/_TARGET_STEM_//g;\ - s/_FILENAME_/$$FILENAME/g;\ - s/_DATE_/$(shell date +"%Y-%m-%d")/g;\ - s/_EXPLANATION_/$$EXPLANATION/g;\ - s%_URLDIR_%$(DOWNLOAD_URLDIR)%g;\ - s/_SIZE_/$$SIZE/g;\ - " > $@ - -#$(SSI_PREFIX)%.html: $(TMPHTML) $(SSI_DOWNLOAD_TMPL) -# $(generate_ssi) -# -#$(SSI_PREFIX)%.html: %-lx-src.tar.gz $(TMPHTML) $(SSI_DOWNLOAD_TMPL) -# $(generate_ssi) - -ssi_build.dist: - make $(SSI_FILES) - -# -- install.dist -install.dist: $(PCKG_FILES) ssi_build.dist - @echo "-- installing distribution files to $(TARGET_HOST):$(TARGET_DIR) as user $(TARGET_USER)" - $(CVS_RSH) -l $(TARGET_USER) $(TARGET_HOST) -C "\ - mkdir -p $(TARGET_DIR); chmod $(TARGET_DIR_MODE) $(TARGET_DIR)" - /usr/bin/rsync -az -v --links -e $(CVS_RSH) $(PCKG_FILES) $(TARGET_USER)@$(TARGET_HOST):$(TARGET_DIR) - $(CVS_RSH) -l $(TARGET_USER) $(TARGET_HOST) -C "\ - cd $(TARGET_DIR); find . -type d | xargs -r chmod $(TARGET_DIR_MODE); find . -type f | xargs -r chmod $(TARGET_FILE_MODE)" - @echo "-- installing referrer include files to $(TARGET_HOST) as user $(TARGET_USER)" - for DIR in $(DOWNLOAD_REFERRER_DIRS) ; do \ - echo "to $$DIR" ;\ - $(CVS_RSH) -l $(TARGET_USER) $(TARGET_HOST) -C "\ - mkdir -p $$DIR; chmod $(TARGET_DIR_MODE) $(TARGET_DIR)" ;\ - /usr/bin/rsync -az -v --links -e $(CVS_RSH) $(TMPHTML)/ssi_download_*.html $(TARGET_USER)@$(TARGET_HOST):$$DIR ;\ - $(CVS_RSH) -l $(TARGET_USER) $(TARGET_HOST) -C "\ - cd $$DIR; find . -type d | xargs -r chmod $(TARGET_DIR_MODE); find . -type f | xargs -r chmod $(TARGET_FILE_MODE)" ;\ - done +upload.clean: + rm -f upload.dist