diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..6c286bb --- /dev/null +++ b/Makefile @@ -0,0 +1,29 @@ +# Includes +-include include.mk + +# deploy variables +DEPLOY_BIN?=rsync +DEPLOY_OPTS?=-avz --delete + +BUILD_OPTS?=--gc --cleanDestinationDir +BUILD_DEST?=public + +.PHONY: serve +serve: + @hugo server -D --disableFastRender -v + +.PHONY: build +build: + @hugo -d $(BUILD_DEST) $(BUILD_OPTIONS) + +.PHONY: clean +clean: + @[ -d $(BUILD_DEST) ] && rm -rf $(BUILD_DEST) + +.PHONY: deploy +deploy: + +ifeq ($(DEPLOY_SERVER),) + $(error DEPLOY_SERVER is not defined) +endif + [ -d $(BUILD_DEST) ] && $(DEPLOY_BIN) $(DEPLOY_OPTS) $(BUILD_DEST)/ $(DEPLOY_SERVER):$(DEPLOY_FOLDER) diff --git a/README.md b/README.md index 1be726e..59c46eb 100644 --- a/README.md +++ b/README.md @@ -2,11 +2,11 @@ Notes de cours et TD machine ----------------------------- Dépôt git pour la construction d'un site statique avec -[Hugo](https://gohugo.io) reprenant l'ensemble de mes notres de cours et TM +[Hugo](https://gohugo.io) reprenant l'ensemble de mes notes de cours et TM machine mises au propre (J'ai beaucoup de retard...) -Je rajouterai plus tard un `makefile` pour la construction de fichiers PDF avec -[pandoc](https://pandoc.org/) +Le projet dispose d'un *Makefile* afin d'utiliser `make` pour la génération des +fichiers et le déploiement. ## Construction du site @@ -25,21 +25,35 @@ git submodule init && git submodule update Pour construite le site, il faut au préalable installer hugo, sur Archlinux : ```shell -# pacman -S hugo +pacman -S hugo ``` Pour activer le serveur web intégré à Hugo, il suffit de lancer la commande (dans le répertoire racine du dépôt) : ```shell -$ hugo server -D --disableFastRender -v +$ make deploy ``` -Il est possible de rajouter l'option `--debug` afin d'afficher plus -d'informations sur la sortie standard. Une fois ce mode activé, il suffit -d'ouvrir son navigateur à l'adresse *http://localhost:1313*. +Pour construire les fichiers statiques du site, il suffit de faire: -## Bugs +``` +make build +``` -C'est la première fois que j'utilise un générateur de site statique, le -fonctionnement du site n'est donc pas optimal +## Déploiement + +Une fois le site construit, il est possible de le déployer en utilisant la +cible `deploy`. Il faut auparavant créer le fichier `include.mk` à la racine de +projet avec les variables suivante: + + ```makefile + DEPLOY_SERVER=monserveur.example.com + DEPLOY_FOLDER=~/www/lpro/ + ``` + +Puis lancer la commande: + +``` +make deploy +```