Esthétique et API

Je n’ai finalement pas pu résister à une réécriture partielle de mon outil dans le but d’avoir une API plus jolie tirant partie des dernières possibilités de fabric :

$ fab -l
Available commands:

    generate_all     GENERATE ALL THE THINGS!!! WARNING: boolean param.
    caches.generate  (Re)generate caches MD files into HTML files.
    caches.new       Cache the given `url` into a MD and a HTML file.
    family.generate  Generate the family history.
    notes.generate   Generate notes and archives for the stream.
    notes.new        Generate the template file to post a note.
    notes.publish    Publish the daily note after generating the feed.
    pages.generate   Generate all static pages.
    posts.generate   Generate posts and archives for the blog.
    posts.publish    Publish the article after generating the feed.
    server.commit    Add/rm files and then commit with the `message`.
    server.deploy    Push/pull the repository from the production server.
    server.errors    Display latest 200 errors lines from production.
    server.infos     Display infos (mail+web) about disk usage in prod.
    server.log       Display access logs continuously from production.

Pour initier cette note :

$ fab notes.new:"Esthétique et API"
[larlet@ssh.alwaysdata.com] Executing task 'notes.new'
[localhost] local: open -a "iA Writer" "larlet.fr/david/stream/2015/01/16/index.md"

Done.

Pour la déployer :

$ fab notes.publish
[larlet@ssh.alwaysdata.com] Executing task 'notes.publish'
Done: http://larlet.dev:8089/david/stream/2015/
Done: http://larlet.dev:8089/david/
Feed: ★ Livre et diffusion (2015-01-07)
Feed: ★ Cours IUT : jQuery et Bonus (2015-01-06)
Feed: ★ Publier, enseigner et cultiver (2015-01-03)
Feed: ★ Rétrospective Mozilla (2014-12-27)
Feed: ★ Père Noël (2014-12-22)
Feed: Acheter des polices (2015-01-15)
Feed: S’adapter à la luminosité ambiante (2015-01-14)
Feed: Régulateur de consommation (2015-01-13)
Feed: Teenagers, AirDrop et P2P (2015-01-12)
Feed: Code et écriture (2015-01-11)
Feed: Devenir conférencier (2015-01-10)
Feed: Unanimisme émotionnel (2015-01-09)
Feed: Kilian Jornet et Aconcagua (2015-01-08)
Feed: Bouncer IRC et backlog (2015-01-07)
Feed: Résister à la généralisation (2015-01-06)
Feed: Cacher le Web (2015-01-05)
Feed: Illettrisme technologique (2015-01-04)
Feed: Écoutés en 2014 (2015-01-03)
Feed: Économie de partage vs. économie de location (2015-01-02)
Feed: Publication quotidienne (2015-01-01)
[localhost] local: hg addremove
adding larlet.fr/david/stream/2015/01/15/index.html
adding larlet.fr/david/stream/2015/01/15/index.md
[localhost] local: hg ci -m "Add new note"
[localhost] local: hg push
pushing to ssh://hg@bitbucket.org/david/larlet.fr
searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 5 changes to 5 files
[larlet@ssh.alwaysdata.com] run: hg pull -u -R /home/larlet/www
INFO:ssh.transport:Connected (version 2.0, client OpenSSH_5.5p1)
INFO:ssh.transport:Authentication (publickey) successful!
INFO:ssh.transport:Secsh channel 1 opened.
[larlet@ssh.alwaysdata.com] out: pulling from ssh://hg@bitbucket.org/david/larlet.fr
[larlet@ssh.alwaysdata.com] out: searching for changes
[larlet@ssh.alwaysdata.com] out: adding changesets
[larlet@ssh.alwaysdata.com] out: adding manifests
[larlet@ssh.alwaysdata.com] out: adding file changes
[larlet@ssh.alwaysdata.com] out: added 1 changesets with 5 changes to 5 files
[larlet@ssh.alwaysdata.com] out: 5 files updated, 0 files merged, 0 files removed, 0 files unresolved

Done.
Disconnecting from ssh.alwaysdata.com... done.

Une doc. Deux lignes. Futile ? Certainement, mais c’est comme un changement de police, ça contribue à l’amélioration d’une expérience d’écriture en la rendant plus fluide.