From e130b8f3798631398e34a1183dd0b74fb41f8baf Mon Sep 17 00:00:00 2001 From: Bertrand Benjamin Date: Fri, 5 Jun 2020 14:02:57 +0200 Subject: [PATCH] Feat: merci makefile --- Makefile | 98 ++++++++++++++++++++++++-------------------------------- 1 file changed, 42 insertions(+), 56 deletions(-) diff --git a/Makefile b/Makefile index aa3f712..099dcbd 100644 --- a/Makefile +++ b/Makefile @@ -8,54 +8,40 @@ OUTPUTDIR=$(BASEDIR)/output CONFFILE=$(BASEDIR)/pelicanconf.py PUBLISHCONF=$(BASEDIR)/publishconf.py -FTP_HOST=localhost -FTP_USER=anonymous -FTP_TARGET_DIR=/ - -SSH_HOST=localhost -SSH_CONF=Embrevade -#SSH_TARGET_DIR=/var/docker/opytex.org/www/ +SSH_HOST=Embrevade +SSH_PORT=22 +SSH_USER=sshcontent +SSH_TARGET_DIR=/var/www SSH_TARGET_DIR=/home/sshcontent/opytex.org/www/ -S3_BUCKET=my_s3_bucket - -CLOUDFILES_USERNAME=my_rackspace_username -CLOUDFILES_API_KEY=my_rackspace_api_key -CLOUDFILES_CONTAINER=my_cloudfiles_container - -DROPBOX_DIR=~/Dropbox/Public/ - -GITHUB_PAGES_BRANCH=gh-pages - -SRC_ENS=~/Cours/Prof/Enseignements/ -SRC_EXCLUDE=--exclude '*/Archive' --exclude '*/tools' --exclude '.git' --exclude '.gitignore' --exclude '*/__pycache__' --exclude '*/config.py' --exclude '*/reflections' --exclude '*/Notes' --exclude '*/notes' --exclude '*/.*' --exclude '*/Makefile' --exclude '2012-2013' --exclude '2013-2014' --exclude '2014-2015' --exclude 'Clipart' --exclude "Shombos" --exclude '*/venv' --exclude "*/.venv" DEBUG ?= 0 ifeq ($(DEBUG), 1) PELICANOPTS += -D endif +RELATIVE ?= 0 +ifeq ($(RELATIVE), 1) + PELICANOPTS += --relative-urls +endif + help: - @echo 'Makefile for a pelican Web site ' - @echo ' ' - @echo 'Usage: ' - @echo ' make html (re)generate the web site ' - @echo ' make clean remove the generated files ' - @echo ' make regenerate regenerate files upon modification ' - @echo ' make publish generate using production settings ' - @echo ' make serve [PORT=8000] serve site at http://localhost:8000' - @echo ' make devserver [PORT=8000] start/restart develop_server.sh ' - @echo ' make stopserver stop local server ' - @echo ' make ssh_upload upload the web site via SSH ' - @echo ' make rsync_upload upload the web site via rsync+ssh ' - @echo ' make dropbox_upload upload the web site via Dropbox ' - @echo ' make ftp_upload upload the web site via FTP ' - @echo ' make s3_upload upload the web site via S3 ' - @echo ' make cf_upload upload the web site via Cloud Files' - @echo ' make github upload the web site via gh-pages ' - @echo ' ' - @echo 'Set the DEBUG variable to 1 to enable debugging, e.g. make DEBUG=1 html' - @echo ' ' + @echo 'Makefile for a pelican Web site ' + @echo ' ' + @echo 'Usage: ' + @echo ' make html (re)generate the web site ' + @echo ' make clean remove the generated files ' + @echo ' make regenerate regenerate files upon modification ' + @echo ' make publish generate using production settings ' + @echo ' make serve [PORT=8000] serve site at http://localhost:8000' + @echo ' make serve-global [SERVER=0.0.0.0] serve (as root) to $(SERVER):80 ' + @echo ' make devserver [PORT=8000] serve and regenerate together ' + @echo ' make ssh_upload upload the web site via SSH ' + @echo ' make rsync_upload upload the web site via rsync+ssh ' + @echo ' ' + @echo 'Set the DEBUG variable to 1 to enable debugging, e.g. make DEBUG=1 html ' + @echo 'Set the RELATIVE variable to 1 to enable relative urls ' + @echo ' ' html: $(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) @@ -68,36 +54,36 @@ regenerate: serve: ifdef PORT - cd $(OUTPUTDIR) && $(PY) -m pelican.server $(PORT) + $(PELICAN) -l $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) -p $(PORT) else - cd $(OUTPUTDIR) && $(PY) -m pelican.server + $(PELICAN) -l $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) endif +serve-global: +ifdef SERVER + $(PELICAN) -l $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) -p $(PORT) -b $(SERVER) +else + $(PELICAN) -l $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) -p $(PORT) -b 0.0.0.0 +endif + + devserver: ifdef PORT - $(BASEDIR)/develop_server.sh restart $(PORT) + $(PELICAN) -lr $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) -p $(PORT) else - $(BASEDIR)/develop_server.sh restart + $(PELICAN) -lr $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) endif -stopserver: - kill -9 `cat pelican.pid` - kill -9 `cat srv.pid` - @echo 'Stopped Pelican and SimpleHTTPServer processes running in background.' - publish: $(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(PUBLISHCONF) $(PELICANOPTS) ssh_upload: publish - scp -r $(OUTPUTDIR)/* $(SSH_CONF):$(SSH_TARGET_DIR) + #scp -P $(SSH_PORT) -r $(OUTPUTDIR)/* $(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR) + scp -r $(OUTPUTDIR)/* $(SSH_HOST):$(SSH_TARGET_DIR) rsync_upload: publish - rsync -e "ssh" -P -rvzc --delete --exclude "pymath" --exclude "opytex" $(OUTPUTDIR)/ $(SSH_CONF):$(SSH_TARGET_DIR) --cvs-exclude + #rsync -e "ssh -p $(SSH_PORT)" -P -rvzc --cvs-exclude --delete $(OUTPUTDIR)/ $(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR) + rsync -e "ssh" -P -rvzc --delete --exclude "pymath" --exclude "opytex" $(OUTPUTDIR)/ $(SSH_HOST):$(SSH_TARGET_DIR) --cvs-exclude -#import_year: -# rsync -rv --delete $(SRC_EXCLUDE) --delete-excluded --include '*/' --include '*' --prune-empty-dirs $(SRC_ENS)/Archive/$$year/ $(INPUTDIR)/Enseignements/$$year -import_ens: - rsync -av --delete $(SRC_EXCLUDE) --delete-excluded --include '*/' --include '*' --prune-empty-dirs $(SRC_ENS) $(INPUTDIR)/Enseignements/ - -.PHONY: html help clean regenerate serve devserver publish ssh_upload rsync_upload dropbox_upload ftp_upload s3_upload cf_upload github import_ens +.PHONY: html help clean regenerate serve serve-global devserver publish ssh_upload rsync_upload