Format - acieroid/newsome GitHub Wiki

Type de fichier

  • un format qui permet de stocker des clés/valeurs imbriquées (JSON, sexps), ou
  • un langage turing-complet pour permettre plus de flexibilité (lua, tinyscheme, python)

Catégories

Dépendences

  • Nom des différents ports à installer
  • Éventuellement indiquer l'OS

Exemple:

{"dependencies":
  {"freebsd": ["lang/python2", "www/py-tornado", "textproc/py-pygments", "www/nginx"]}}

Fichiers

  • Fichiers à copier tels quels dans l'arborescence
  • Nécéssité de supporter des fichiers externes en plus de la description du service

Exemple:

{"files":
  {"nginx.conf": "/usr/local/etc/nginx.conf"}}

Sources

  • Un endroit où sont stockés les sources de l'application. Possibilité d'en indiquer plusieurs.

Exemple:

{"sources": ["http://github.com/acieroid/paste-py"]}

Compilation

  • Commandes à lancer pour compiler
  • $SOURCEDIR pointe vers le dossier où ont été téléchargés les sources
  • pwd initialement mis à $SOURCEDIR

Exemple:

{"compilation": ["go build"]}

Services

  • Services de l'OS à lancer

Exemple:

{"services": ["nginx"]}

Lancement

  • Commande(s) à éxécuter pour lancer l'application
  • pwd initialement mis a $SOURCEDIR

Exemple:

{"launch": ["python2 daemonize.py"]}

Ports

  • Ports à rediriger, nommés pour plus de clarté.

Exemple:

{"ports": {"http": "8123"}}

Scripts

Scripts à lancer à certain moments (avant la compilation pour installer des deps, avant le lancement, etc.)

Exemple:

{"scripts":
  {"before-compilation": ["go get github.com/kuroneko/gosqlite3"]}}