hugosoucycc

[ARCHIVED] Another old source code of <hugo.soucy.cc>.
Log | Files | Refs | Submodules

commit b02d9c37c85032786c8e54cbb4d1934423608aed
parent 15a1d4148c03ecfc87d0aa7d8d4c19638ba969a5
Author: Hugo Soucy <hugo@soucy.cc>
Date:   Sun, 12 Mar 2017 11:44:38 -0400

Add a new text about the manuel task runner.

Diffstat:
Acontent/txt/bash/2017/03/manuel-taskrunner.md | 79+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 79 insertions(+), 0 deletions(-)

diff --git a/content/txt/bash/2017/03/manuel-taskrunner.md b/content/txt/bash/2017/03/manuel-taskrunner.md @@ -0,0 +1,79 @@ +--- +title: Manuel un task runner en bash +date: 2017-03-12 +datetime: 11:03:16 +template: default +--- + +Manuel un task runner en bash +============================= + +[Manuel est une application bash (>= 4) pour créer des tâches automatisées](https://github.com/ShaneKilkelly/manuel). Il +s'inspire des outils comme Grunt ou Gulp qui, eux sont écrit en +Node.js (JavaScript). + +Dans mon cas, j'ai décidé d'utiliser Manuel dans la coneption et la +maintenance de mon site personnel, puisque celui-ci est fait +avec +[un générateur de site web statique que j'ai moi-même créé](https://github.com/hs0ucy/fakestache-ssg) avec +bash et pandoc; il me parassait donc logique que tout le "workflow" +tourne autour de bash ou de d'autres outils Unix. + +À l'instar de Grunt ou Gulp, Manuel ne fait rien d'extraordinaire en +soit, sinon de regrouper et d'enchaîner les tâches routinières de +façon séquentielle et de les exécuter en une seule commande dans le +terminal. + +Sinon Manuel contient un mécanisme d'extension qui permet d'étendre +les foncitonnalités de bases. À ce jour, il n'y a ne que deux +extensions officiels, mais vue que tout ça c'est des functions bash, +il est facile d'en créer d'autre au besoin. + +Il y +a entre autre +[manuel-contrib-watch](https://github.com/ShaneKilkelly/manuel-contrib-watch) pour +surveiller en temps réel les changements dans un répertoire. Pour ma +part, je me sers de cette extension pour surveiller les modifications +aux fichiers `*.scss` et `.js` pour compiler et mettre à jour en temps +réel le thème de mon site web. + +Voici un exemple de mon utilisation de `manuel-contrib-watch` dans mon +`manuelfile` : + +``` +# Concatenate and minify styles sheets (./frontend). +# Then export with rsync +function update_css () { + ./frontend + + rsync -avmh "./$ASSETS/css/" "./$PUBLICHTML/css/" +} + +# Concatenate and minify scripts (./frontend). +# Then export with rsync +function update_js () { + ./frontend + + rsync -avmh "./$ASSETS/js/" "./$PUBLICHTML/js/" +} + +# Watch CSS and JS files +# Then update them +function watch_assets_change () { + + declare -A actions=( + [".*.css$"]="update_css" + [".*.js$"]="update_js" + ) + + manuel_watch "./static/dev/" +} +``` + +Puis dans le terminal on fait la commande `manuel watch_assets_change` +pour lancer le "watch". + +Voici +mon +[manuelfile au complet](https://github.com/hs0ucy/hugosoucycc/blob/master/manuelfile). Si +vous avez des questions, n'hésiter pas à communiquer avec moi.