Publier automatiquement ses nouveaux articles sur le moteur de blog Pelican avec Git

Par @Quack1 dans le
Traductions :
Tags : #Blog, #Pelican, #Python, #Git, #planet-libre, #planet-ubuntu, #pelican_auto_tweet,
Partagez cet article! ~ Google+ ~ ~ Linkedin ~ Mail
Flattr this

Fork me on GitHub

 

J'ai parlé récemment d'un script qui permet de poster automatiquement un tweet quand je publie un nouvel article sur le blog.

Ce script a été un peu modifié puisqu'il fait aujourd'hui 4 choses :

  1. Il vérifie si un nouvel article a été écrit (en cherchant la présence du message [POST] au début du message de commit Git) ;
  2. Dans ce cas, il envoie les nouveaux commits sur le dépôt Git défini par défaut ;
  3. Il met à jour le blog sur le serveur via SSH (commande make ssh_upload pour les Pelican-eux) ;
  4. Il envoie un tweet.

Tout ça c'est sympa, mais c'est un peu con d'automatiser toutes ces étapes si il faut au final lancer le script à la main. La magie de Git fait qu'on peut automatiser tout ça en utilisant les hooks de Git.

Ces hooks sont des scripts que Git lance après (ou avant) certaines étapes de son processus. Ils sont listés dans le répertoire .git/hooks/ :

╭────<quack@spiderman >───<  ~/Documents/writing/blog/quack1_pelican >  master* 
╰───[18:52:40] $ ls .git/hooks 
applypatch-msg.sample  post-commit         pre-applypatch.sample  prepare-commit-msg.sample  update.sample
commit-msg.sample      post-update.sample  pre-commit.sample      pre-rebase.sample

Je ne vais pas tous les faire, les noms sont assez explicites, mais par exemple pre-commit est lancé avant le commit.

Mon script a besoin que le commit soit terminé, donc j'ai fait pointer le fichier .git/hooks/post-commit sur le script. Toute la configuration nécessaire est placée dans le fichier de conf, donc le script se lance sans souci :

╭────<quack@spiderman >───<  ~/Documents/writing/blog/quack1_pelican >  master* 
╰───[18:53:14] $ ln -s ~/work/workspace/python/pelican_auto_tweet/pelican_auto_tweet.py .git/hooks/post-commit

Désormais dès que vous ferez un commit dans ce dépôt Git, le script se lancera et si toutes les conditions sont réunies, votre blog se mettra à jour, et un tweet sera posté !

 

Le dépôt GitHub du projet est à jour, et possède déjà quelques issues que j'avais trouvé sur les scripts et que je dois corriger. Si vous utilisez les scripts, et que vous trouvez des bugs, n'hésitez pas à me les remonter, je corrigerais ça rapidement !

Cet article est libre et diffusé sous une licence Creative Commons CC-BY-NC. Vous pouvez rémunérer son auteur en utilisant le système Flattr :
Flattr this

Comments !