#!/bin/bash
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
#source /etc/nulib.sh || exit 1
source "$(dirname -- "$0")/vendor/nulib/php/load.sh" || exit 1

action=update
evolution=mature
args=(
    "Gérer la maturation d'une classe ou d'un package"
    "
-cn SRC
-cm SRC [DEST]
-u[n|m] package|Class [DEST]

Il y a deux types d'évolutions possibles:
* mettre en nurserie
* arriver à maturation

Pour chaque type d'évolution, il y a deux actions possibles:
* copier (-c)
  * mettre en nurserie (-cn) consiste à copier (importer) un fichier PHP ou un
    package depuis un projet nulib-*
    * SRC est le fichier ou le package du projet nulib-*
  * arriver à maturation (-cm) consiste à copier (exporter) le fichier PHP ou
    le package vers un projet nulib-*
    * SRC est le fichier ou le package
    * DEST est le répertoire du projet nulib-* ou le répertoire courant sinon
* mettre à jour (-u)
  * mettre en nurserie (-un) met à jour les sources d'un projet pour utiliser la
    version de nur/sery
  * arriver à maturation (-um) met à jour les sources d'un projet pour utiliser
    la version mature à maturation
  L'argument est un 'package' ou un 'sous\\package' (dont le nom commence par
  une minuscule) ou une 'Classe' (dont le nom commence par une majuscule)"
    -c,--copy action=copy "Copier de/vers un projet nulib-*"
    -u,--update action=update "Mettre à jour un projet. C'est l'option par défaut"
    -i,-n,--nurse evolution=nurse "Mettre en nurserie"
    -x,-m,--mature evolution=mature "Arriver à maturation. C'est l'option par défaut"
)
parse_args "$@"; set -- "${args[@]}"