diff --git a/.udir b/.udir
index c816bf3..6a259d2 100644
--- a/.udir
+++ b/.udir
@@ -16,8 +16,10 @@ rm_utools=
kvm_service=
# Faut-il installer le service openvz-fix-etchosts?
openvz_service=
+# Faut-il installer le service kill-ssh-user-sessions?
+ksus_service=
-configure_variables=(dest uninst_utools rm_utools kvm_service openvz_service)
+configure_variables=(dest uninst_utools rm_utools kvm_service openvz_service ksus_service)
configure_dest_for=(bashrc profile lib/uinst/conf lib/uinst/rootconf lib/profile.d/nutools.shared lib/bashrc.d/bash_completion.shared lib/init.d/kvm-stop-all legacy/sysinc/utools legacy/sysinc/system_caps legacy/sysinc/private/init)
config_scripts=(lib/uinst/conf lib/uinst/system_caps.legacy)
install_profiles=true
diff --git a/CHANGES.md b/CHANGES.md
new file mode 100644
index 0000000..e1654aa
--- /dev/null
+++ b/CHANGES.md
@@ -0,0 +1,660 @@
+## Version 6.0.0 du 30/12/2016-18:26
+
+* `a7767f7` Intégration de la branche better-apacheconfig
+ * `683d5df` pour simplifier le débuggage, set -x est désactivé pour les fonction urequire(), parse_args() et awkdef()
+ * `ed1633a` module template: support de variables supplémentaires avec TEMPLATE_USER_VARS et de la description des variables dans le fichier de configuration
+ * `b920641` l'installation distante de modules uinst par rruns se fait par défaut sans confirmation
+ * `fd9105f` bug dans le module base.num: 'is*num -' était vrai
+ * `6366256` module ipcalc: ajout de ipcalc_network()
+ * `fbc1a5c` mise à jour du module debian
+ * `e3cd3ce` diverses modification de apacheconfig et apache.tools
+* `c552d2d` corriger le module python ulib.ext.xpath
+* `62a59e5` kill-ssh-user-sessions.service: laisser un peu de temps pour que le client soit notifié
+* `4b7d4f4` ajouter une option pour installer le service kill-ssh-user-sessions
+* `c95d1cd` ajouter un service pour tuer les sessions ssh lors de l'arrêt de la machine
+* `4e1e5a4` ruinst: tracer la collecte d'informations sur l'hôte distant
+* `5aa60a3` désactiver la création du lien pour xpathtool.py, qui ne fonctionne qu'à partir de lib/ulib/support
+* `6a4e6a7` foreach: ajouter une syntaxe alternative pour lister directement les éléments
+* `24a8839` update-nutools: possibilité de cloner la branche develop avec l'option --develop
+* `24812c1` initialiser PYTHONIOENCODING pour faciliter l'exécution de scripts python
+* `390233a` modification pour afficher l'aide même si certains outils requis sont absents
+* `2425cbe` maj de l'arborescence de la doc
+* `96b1866` prel: support du fichier .prel-noauto pour interdire les releases automatiques
+* `b278b17` prel: mise à jour de la commande par défaut pour les dépendances
+* `9983e49` pver: support des aliases D et P pour .pver-map
+* `e37cc8f` pver et prel utilisent -p par défaut pour le support maven
+* `2980d15` pver supporte la gestion des versions maven
+* `190519d` pxs ne requière plus la présence du remote origin
+* `4a4094c` déplacement de is_defined() et is_array() dans base.core
+* `d735b7b` ulib: strops: ajout des opération mid et repl
+* `8d486dc` ulib: ajouter la fonction strops
+* `db24c70` ulib: ajout de la fonction is_array()
+* `3ccd4ed` apacheconfig: ne pas chercher à utiliser site-certs.conf s'il n'y a pas les variables @@{cert,key,ca}@@
+* `b9dc5ca` bug dans apacheconfig
+* `b4ade73` TODO de branche
+* `44fe622` chrono.py: chronomètre graphique
+* `2a6d089` ulib/base: implémenter ask_any()
+* `94615de` conversion de CHANGES.txt en CHANGES.md
+* `d2a56d6` prel: ajout de l'option --uc pour convertir CHANGES.txt en CHANGES.md
+* `f3ba5e3` prel: générer un fichier CHANGES.md par défaut avec une syntaxe un peu différente
+* `40babfe` sqlcsv: l'option -l supporte une url jdbc, et la recherche de sqlcsv.properties se fait dans tous les répertoires parent jusqu'à $HOME
+
+## Version 5.3.0 du 28/09/2016-23:31
+
+* `5c466d8` ldif et ldap: match des suffixes sans tenir compte de la casse. modrdn prend un nouvel argument SUFFIX
+* `9eb566a` runsmod: modifier chemins par défaut
+* `a082788` bash_completion: bug sur certains serveurs
+
+## Version 5.2.1 du 01/09/2016-15:44
+
+* `9995f95` runsmod: bug
+
+## Version 5.2.0 du 31/08/2016-22:30
+
+* `361f1b2` Intégration de la branche runsmod-goodies
+ * `8854469` maj de la config par défaut
+ * `f0a71e4` bug avec la génération de sysinfos.conf
+ * `830a33b` rruns calcule aussi les chemins d'hôtes automatiquement
+ * `40f5347` préparer le calcul automatique des chemins
+ * `2fbc599` bug avec git clone lors du basculement sur la branche develop
+ * `5bef9b1` utiliser la même logique que uproject pour cloner en mode devel
+ * `96afb2a` mapping des répertoires de destination
+ * `4b212d8` ne pas utiliser %n tout de suite
+ * `30e5dda` runs et rruns: améliorer le calcul des chemins
+ * `55c5755` support de //...%h...
+ * `409e406` préparer implémentation de %n
+* `208f30d` Intégration de la branche better-fndate
+ * `f388f27` ajouter des liens pour les fonctions courantes de fndate. En mode automatique, si le fichier contient déjà une mention de date, ne pas la modifier. rajouter l'option -@ pour forcer la modification de la date
+
+## Version 5.1.0 du 25/08/2016-15:36
+
+* `8a33418` ulib/ldif: support de l'opération modrdn
+* `b710461` Intégration de la branche apacheconfig
+ * `e52d6c6` déplacer la logique de apacheconfig dans le module apache.tools
+
+## Version 5.0.0 du 09/08/2016-09:42
+
+* `c00d9e4` cgilsxml.py: prévoir le cas où le fichier disparait pendant que la liste est construite
+* `2fc7392` uxpath.py: bug
+* `f85cd8a` foreach: implémenter la syntaxe %var par défaut
+* `de383be` foreach: définir des variables supplémentaires pour chaque fichier trouvé
+* `a7fd880` foreach: maj doc
+* `c01eb20` ulib/awk: maj doc
+* `04b723f` qsql: compatibilité avec anciennes versions de bash
+* `dcf0e61` module apache: ajout de HTDOCSBASE pour le déploiement multi-homé
+* `7565461` woinst: support du déploiement d'applications construites avec Maven
+* `eb0a3be` woctl _create: enlever le suffixe .woa par défaut
+* `d251a4e` woinst: tenir compte des variables utilisateurs
+* `2fd51b6` pclone bascule automatiquement sur la branche develop si elle existe
+* `d056be4` foreach: ajouter l'option --parent
+* `63e78f4` ulib: compatibilité avec versions précédentes de bash
+* `64699c0` ensure_hostname(): clarification du message affiché
+* `22acf0a` ulib: ajouter _qsql() et qsql() pour quoter des chaines sql
+* `18b2501` prel: améliorer l'affichage du résumé
+* `b8bf04b` uawk dump: ajouter le format -v qui affiches des variables individuelles
+* `d57839d` Intégration de la branche cgilsxml
+ * `6e67302` la disposition, le type et l'encoding peuvent être spécifique à un expression --spec ou --glob
+ * `b7600aa` possibilité de matcher des sous-répertoires dans l'expression --spec. Support du match de type --glob
+ * `a49d6e2` les valeurs None ne sont pas affichées. n'a pas de valeur
+* `16c1936` uawk dump: avec la méthode -a, afficher par défaut un tableau vide avant
+* `c6b6dd4` uawk: ajout de l'alias dump qui avait été oublié
+* `d8ab7f7` cgilsxml.py: cosmetic
+* `0204a21` cgilsxml.py: possibilité de classifier des fichiers au sein d'un groupe avec --break-on
+* `3a9bf04` cgilsxml.py: possibilité de spécifier la disposition du contenu, le type de contenu, ainsi que l'encoding
+* `a730609` cgilsxml.py: permettre de télécharger le fichier avec la disposition inline
+* `ce0193f` cgilsxml.py: corriger la doc
+* `1eba9a7` foreach: améliorer l'affichage
+* `c669e8f` utempl -t wosrc: si on crée un wosrc dans le répertoire java, enlever automatiquement le package pour les fichiers resources pour une configuration maven
+* `f0f7a6f` utempl -t wosrc: génère des pages bootstrap par défaut
+* `8fced87` woctl run: permettre de choisir la version de java utilisée pour le lancement
+* `9fe17b3` Ajouter le script foreach
+* `f5db579` uxpath: support de la modification de la valeur d'un noeud
+* `3653f7d` Ajout des fonctions {build,eval}cmd et upvar
+* `7091ecf` support de la création d'un template wosrc pour un projet maven
+* `34dbba9` support de l'utilisation des valeurs spécifiques de GIT_ANNEX pour rsync avec git-annex
+* `470d7cf` pcrone peut utiliser un répertoire existant
+* `e4b7729` corriger le template shell
+* `28bb531` activer l'auto-complétion sur debian jessie
+* `317dbca` ajout de compileAndGo dans les templates
+* `01b9a68` ulib/vcs: corriger le code de git_track_branch. Utiliser ce code dans pdev --sync
+* `fc75fcd` runsmod: quelques corrections mineures
+* `5058085` runsmod: Implémenter les fonctionnalités documentées
+* `12c521c` indenter l'affichage des fonctions qui demandent une saisie de l'utilisateur
+* `86a5787` em: forcer -nw en mode non display
+* `e74d9e4` bug
+* `9218941` ajouter l'option -g à caturl
+* `fcacf64` maj doc
+* `01ea57e` changer l'affichage de udir, et mettre à jour la doc
+* `9fe71b3` ajouter fndate pour dater les fichiers
+* `8143452` rendre ppath() plus résistant
+* `c9ce115` Intégration de la branche improve-tls
+ * `d9153af` support de la configuration tls selon https://wiki.mozilla.org/Security/Server_Side_TLS
+* `135dbf6` diverses corrections sur runs
+* `3d5aeb2` Ajouter l'option -c à umountr
+* `278bf5a` renommer rumount un umountr
+* `db76c12` Intégration de la branche runsmod-paths
+ * `a31f8c2` changer la convention de nommage pour les répertoires ~/runs
+* `5a31e7e` ulib/java: ajout de la fonction get_java_version()
+* `f74b5e3` Générer la doc au format markdown pour tagadoc
+* `ded89be` pdev: corrections pour supporter nouvelle version de git
+* `5d3e9fe` runsmod: corriger les valeurs par défaut pour les hôtes dans la bulle serveur
+* `ada3686` uenv: bug dans le calcul des répertoires destination
+* `deaa416` Intégration de la branche runsmod-only
+ * `f96c482` proposer de créer la configuration par défaut
+ * `f04e862` implémentation initiale de runsmod
+* `42b9590` cosmetic
+* `9bc373f` cgiparams.py: implémenter le code de retour
+* `1834d29` intégrer les fonctionnalités de cgiupload.py dans cgiparams.py
+
+## Version 4.4.1 du 15/04/2016-12:24
+
+* `a45fd99` awkrun: ajouter l'argument suffix à qsql(), cqsql(), cval()
+
+## Version 4.4.0 du 15/04/2016-12:04
+
+* `73391a9` awkrun: ajout d'un champ field à cqsql
+* `2f60fec` git_track_branch(): support de git >= 1.8.x
+* `130b4d1` tenir compte du fichier /etc/debian_chroot pour initialiser UTOOLS_CHROOT
+* `48c0420` ne pas afficher d'erreur si apache n'est pas installé
+* `5e1a6cf` Intégration de la branche rumount
+* `1ad804b` implémentation initiale de rumount
+* `f460399` améliorer le calcul du répertoire destination avec pclone/pcrone
+* `6411e63` configurer la valeur de l'umask
+* `eb4362d` apacheconfig: déploiement pour plusieurs systèmes à partir des mêmes sources
+
+## Version 4.3.0 du 07/04/2016-14:57
+
+* `d021c97` support de on_debian() avec des arguments
+
+## Version 4.2.0 du 06/04/2016-14:25
+
+* `a710c5a` Intégration de la branche stdout
+* `ba969e3` ajout de stdredir pour pallier l'absence éventuelle de /dev/std*
+* `472f2c7` Intégration de la branche sysinfos
+* `1864cdf` fonctions pour faciliter la gestion des dépendances sous debian
+* `2c27f03` uproject: ajouter la commande xconfig-export
+* `ed3de6d` umail: ajout de l'option --gencmd
+
+## Version 4.1.1 du 08/03/2016-12:04
+
+* `0bd2b1f` correction de bugs avec apacheconfig
+
+## Version 4.1.0 du 03/03/2016-11:02
+
+* `4024b2a` pyulib/umail: possibilité de spécifier le type de contenu
+
+## Version 4.0.0 du 01/03/2016-19:08
+
+* `c46626c` ldif: support de dumpcsv et printcsv dans get_transform_cmd()
+* `d661e43` doinplace fonctionne comme la fonction. la version étendue est un lien nommé doinplacex
+* `d6540ac` dumpcsv: ajouter l'option --hname
+* `903d500` dumpcsv: ajouter les options --keep-fields, --skip-fields, --dump-headers
+* `af18332` implémenter printcsv
+* `383410a` *csv: améliorer cohérences des arguments
+* `4808fa0` dumpcsv: ajout de l'option -b
+* `939b5ad` implémenter dumpcsv et nettoyer un peu le code
+* `cb0e553` script doinplace qui mélange les fonctionnalités des fonctions doinplace et evalp
+* `0cf8e04` scripts noerror, noout, noerr qui fonctionnent comme les fonctions du même nom
+* `66249c9` nutools base: ajout de noerror(), noout(), noerr()
+* `db76488` maj doc
+* `40f1bf6` prel: après avoir fusionné une branche, revenir sur develop
+
+## Version 3.5.0 du 26/02/2016-11:35
+
+* `4648b3f` awkrun: ajout de la fonction qarr()
+* `81e7f9b` correction de certains messages affichés
+* `0ea24ec` ajout de sqlcsv
+* `ad06535` pu: autoriser fast-forward même en cas de modifications locales
+* `1c397e8` ajout des fonctions awk cqsql(), sval(), cval(). réorganiser et clarifier la doc
+
+## Version 3.4.2 du 10/02/2016-11:45
+
+## Version 3.4.1 du 10/02/2016-11:45
+
+* `a702b89` mergecsv: bug quand left ne contient qu'un seul champ vide
+
+## Version 3.4.0 du 09/02/2016-11:25
+
+* `788e1ff` cgilsxml.py: ajout de l'option -E. bug avec le tri sur des valeurs inexistantes
+
+## Version 3.3.0 du 08/02/2016-09:41
+
+* `da3ef60` cgilsxml.py: ajouter de squery_string permettant d'ajouter un préfixe
+* `bb25711` cgi: cgierror et cgiredirect arrêtent le script
+
+## Version 3.2.0 du 07/02/2016-23:05
+
+* `24f3211` cgiparams.py et cgilsxml.py: modifications pour gérer la construction de QUERY_STRING
+
+## Version 3.1.0 du 04/02/2016-13:52
+
+* `3190a32` cgilsxml.py: ajout de la variable script_base, qui permet de faire des urls relatives
+* `f4537af` ussh: bug dans l'analyse des arguments
+* `9992505` ussh: pas de valeur par défaut pour DEFAULT_USER; --parse affiche toutes les options
+* `b19059e` Intégration de la branche ussh-auto-persist
+* `5c75737` ussh: configuration du multiplexage pour certains hôtes
+
+## Version 3.0.1 du 31/12/2015-12:36
+
+* `56c305a` awk ne supporte pas \s
+
+## Version 3.0.0 du 24/12/2015-15:39
+
+* `4b1c30b` nouvelles fonctions pour le module cgi. cgilsxml, cgiupload et cgiparams sont rassemblés dans le module cgisupport
+
+## Version 2.26.0 du 24/12/2015-12:17
+
+* `d5a2cce` cgilsxml.py: rajouter la variable env/query_vars
+
+## Version 2.25.0 du 24/12/2015-11:15
+
+* `6c73940` cgilsxml.py: désactiver le cache par défaut
+
+## Version 2.24.1 du 24/12/2015-10:12
+
+* `3aba3e3` bug
+
+## Version 2.24.0 du 24/12/2015-09:58
+
+* `b288cf2` apacheconfig: support des fichiers de confs --> /etc/apache2/cond.d sur debian wheezy-
+* `2e3fe66` ussh: forcer l'allocation d'un tty avec --cc
+* `58fa40c` ussh: ajouter le support de uwatch
+* `7bc63c5` maj doc uwatch
+* `2d2754b` ajout de uwatch pour afficher un compte
+* `4376fff` maj doc
+* `bb176d7` maj du template pour runsconfig
+
+## Version 2.23.1 du 15/12/2015-11:01
+
+* `d8d0cc8` cgilsxml: sélectionner automatiquement un groupe seul
+
+## Version 2.23.0 du 15/12/2015-10:06
+
+* `501a7d2` cgilsxml: script_name et xslt peuvent être spécifié dans les paramètres QUERY_STRING
+* `ebe4599` Intégration de la branche runs
+* `35eadc1` correction d'un bug avec la recherche d'un fichier de recette
+* `98ba626` les recettes ont maintenant l'extension .rr par défaut
+* `a2e863e` chercher aussi les scripts dans le sous-répertoire runs dans les répertoires d'hôte
+
+## Version 2.22.0 du 07/12/2015-19:05
+
+* `dbc4d9a` uscrontab: ne pas afficher plusieurs fois un même message quand le verrou est posé. n'afficher le message sur la pause qu'avec un tty
+* `9821d20` ajouter le lien vers cgilsxml.py
+
+## Version 2.21.0 du 07/12/2015-15:12
+
+* `d7b468d` cgilsxml: ajouter les variables dlname, size, Y, m, d, H, M, S. maj doc
+* `eac94a7` cgiupload: possibilité de filtrer sur le nom du fichier ou son type de contenu
+* `fae2111` ajout de cgilsxml
+* `26fe709` apacheconfig: -S peut aussi être utilisé avec --localhosts
+* `7c6ad6a` apacheconfig: nouvelles options pour le développement
+* `c2d5eab` pxs fait aussi git pull avec un dépôt sans annexe
+* `dca7bee` pxs fonctionne pour les dépôt normaux comme pci -A
+
+## Version 2.20.0 du 12/11/2015-15:41
+
+* `16d95d2` apache_autoconf(): déploiement des certificats autorité
+* `775a021` nutools: ajout de cpvcs() pour copier avec la sémantique de cpnovcs() les fichiers de VCS aussi
+* `1ca0ee5` runs: ajout des options --force, --copy-links et --with-vcs à ref()
+* `91686fb` templatectl: il n'est plus nécessaire de spécifier explicitement fichier.template
+
+## Version 2.19.0 du 02/11/2015-11:03
+
+* `37f3bff` apacheconfig: diverses corrections de bugs
+* `5d3861b` apacheconfig: si host==@@dhost@@, alors hostname=@@dhostname@@ et aliases=@@daliases@@
+* `27592d4` apacheconfig: support des hôtes dynamiques ou statiques
+* `93ac7ea` re-écrire la gestion des templates pour apacheconfig et runsconfig
+
+## Version 2.18.0 du 27/10/2015-12:05
+
+* `434403a` Intégration de la branche uscrontab
+* `2118885` uscrontab: possibilité de mettre en pause sans modifier les planifications en cours
+* `0eeee20` awkrun: renommer les fonctions quote_*
+* `18691c8` upassword: maj doc et support des commentaires pour le mode batch
+
+## Version 2.17.2 du 26/09/2015-12:25
+
+* `1837a0c` pxs: corriger xget, xcopy, xmove pour utiliser directement git annex sync
+
+## Version 2.17.1 du 26/09/2015-12:21
+
+* `c8c6744` pxs: support des versions <= 5.20150825
+
+## Version 2.17.0 du 26/09/2015-11:51
+
+* `552e4ba` améliorer pxs pour un dépôt en mode direct
+* `2ce66e6` maj doc
+
+## Version 2.16.0 du 10/09/2015-11:16
+
+* `42aa7ea` fonctions e*: changer l'affichage en mode NO_COLOR pour afficher les préfixes complets
+
+## Version 2.15.0 du 08/09/2015-10:14
+
+* `69ee45a` Intégration de la branche prel-fixes
+* `47b6e5b` créer VERSION.txt et CHANGES.txt à la racine du projet
+* `9d8a747` faire le push à la fin des opérations d'update et/ou de merge
+
+## Version 2.14.0 du 03/09/2015-09:04
+
+* `9dcd60b` pxs transfert les données aussi en mode direct
+
+## Version 2.13.0 du 01/09/2015-15:44
+
+* `8d2e386` uscrontab: permettre d'ignorer le code d'erreur pour une commande planifiée
+* `aa989ef` Intégration de la branche uinst
+* `58d9f16` uinst -y pose toujours la question si le répertoire est calculé automatiquement
+* `594fd4e` activer l'autocomplétion pour uinst -h
+
+## Version 2.12.1 du 24/08/2015-16:12
+
+* `e356c2b` bug avec le calcul du système
+* `e040cac` Avec les fonctions e*, afficher le statut de façon explicite en mode non coloré
+
+## Version 2.12.0 du 23/08/2015-22:57
+
+* `dcb85ac` Améliorer le déploiement uinst:rsync avec préfixes pour les hôtes distants
+
+## Version 2.11.0 du 21/08/2015-10:31
+
+* `d9282f7` uinst: ajouter l'option -h pour la méthode uinst:rsync
+* `7643573` nettoyer la branche
+
+## Version 2.10.0 du 19/08/2015-10:23
+
+* `6ba41b9` support de --uses-su pour ruinst -C
+
+## Version 2.9.0 du 10/08/2015-14:04
+
+* `447d13f` support de nouvelles versions d'OS pour sysinfos
+* `48e111a` fconv et fnconv: le premier argument est le fichier s'il n'est pas spécifié avec -f
+* `c29f4b9` mkiso: nouvelles options -A et -V
+* `662b82f` caturl --check ne doit pas afficher l'url
+
+## Version 2.8.0 du 22/07/2015-15:09
+
+* `0f5b572` uinst installe maintenant les profils en mode partagé par défaut
+* `fb6b492` améliorer l'affichage des scripts geturl et openurl
+
+## Version 2.7.0 du 17/07/2015-22:03
+
+* `7e2a6c3` update-nutools ignore par défaut l'eventuel proxy défini par http_proxy
+* `13215c3` apacheconfig: améliorer l'affichage de l'aide et support du répertoire .apacheconfig
+* `27f5f7a` pyulib honore maintenant UTOOLS_NO_COLORS
+* `3ee6cb4` diminuer l'indentation pour les fonctions e*
+* `d4ac5f7` modifier l'affichage des fonction e*
+
+## Version 2.6.0 du 10/07/2015-17:32
+
+* `efa6b3a` Intégration de la branche ftps
+* `3288999` authftp: support tls en forçant l'utilisation de lftp
+* `58e7f6f` pconf reconnait maintenant les arguments offline et online
+
+## Version 2.5.1 du 03/07/2015-08:29
+
+* `abc4cb9` dumpclients: possibilité de choisir les champs supplémentaires à afficher
+
+## Version 2.5.0 du 03/07/2015-07:39
+
+* `2e15cbe` Ajouter l'option -z à dumpclients
+
+## Version 2.4.0 du 01/07/2015-04:04
+
+* `fda97a8` mise à jour de upassword
+
+## Version 2.3.0 du 01/07/2015-03:09
+
+* `f581aa9` Intégration de la branche pdev-merges
+* `80d7a73` ajouter les options -b et -s à pdev
+
+## Version 2.2.0 du 24/06/2015-16:19
+
+* `98cfdfc` Intégration de la branche update-upassword
+* `34f027b` bug avec la présence du scheme dans sha
+* `b5e6c13` Intégration de la branche update-upassword
+* `e4e2fa7` mise à jour upassword pour afficher sha en hexadécimal
+
+## Version 2.1.1 du 22/06/2015-11:37
+
+* `40225b0` Intégration de la branche proxy-default
+* `2fa0791` profile.d/proxy lit aussi les valeurs par défaut pour l'hôte
+
+## Version 2.1.0 du 22/06/2015-10:25
+
+* `2a3eb76` Intégration de la branche uenv-modifs
+* `bd8c7f8` correction d'un bug avec le nom final
+* `d73c929` correction d'un bug avec le choix du répertoire de destination
+* `e9089d8` les répertoires de profil partagé et de machine sont traités comme un seul répertoire
+* `e3f76cd` possibilité de spécifier si un profil doit être installé dans le répertoire de profil partagé
+
+## Version 2.0.0 du 22/06/2015-00:48
+
+* `8286b29` Intégration de la branche uenv-modifs
+* `c43cda0` les répertoires de profil sont spécifiques au nom de la machine
+
+## Version 1.19.0 du 21/06/2015-10:27
+
+* `387dec2` Intégration de la branche add-pxwa
+* `4d0b734` ajout de la commande xwebapp
+
+## Version 1.18.0 du 09/06/2015-10:40
+
+* `01e2929` Intégration de la branche fix-javaproperties
+* `b24e9ff` norm_properties() affiche les caractères en majuscule, comme JavaProperties#store()
+
+## Version 1.17.0 du 07/06/2015-14:00
+
+* `e2d0c0c` Intégration de la branche pdev-fix
+* `1cc3bd4` ajouter l'option --sync à pdev
+
+## Version 1.16.0 du 04/06/2015-22:14
+
+* `4a15085` Intégration de la branche verbose-update
+* `8a27561` pu: afficher un message s'il y a des modifications locales
+
+## Version 1.15.0 du 22/05/2015-17:03
+
+* `e715087` Intégration de la branche update-upassword
+* `a74a373` upassword: possibilité de spécifier de façon dynamique la ligne à afficher après
+
+## Version 1.14.0 du 22/05/2015-16:41
+
+* `d8f20c3` Intégration de la branche update-upassword
+* `dea524a` ajout du mode batch
+
+## Version 1.13.0 du 22/05/2015-16:04
+
+* `275bff8` Intégration de la branche update-upassword
+* `1ce1d98` mise à jour de upassword
+
+## Version 1.12.0 du 22/05/2015-13:37
+
+* `57fc84d` correction d'un bug avec prel -s
+* `cf108d7` Intégration de la branche prel-show-modifs
+* `a744f48` prel -s afficher la liste des modifications qui seraient enregistrées
+
+## Version 1.11.0 du 22/05/2015-11:41
+
+* `2984052` Intégration de la branche quiet-completion
+* `755cfa7` ne pas afficher les erreurs pour les fonctions de complétion de git
+* `2b5eb2a` Intégration de la branche pu
+* `b004730` uproject update fait fetch puis merge, manuellement
+
+## Version 1.10.0 du 20/05/2015-12:08
+
+* `bf1d86a` Intégration de la branche pu-auto-forward
+* `8bf8164` fast-forwarder automatiquement les branches locales par rapport aux branches distantes
+* `8baabea` Intégration de la branche ptools-maj-topic
+* `5ff5b7d` déterminer les branches de topic: ignorer les branches avec un slash dans le nom
+
+## Version 1.9.0 du 19/05/2015-18:25
+
+* `5933089` Intégration de la branche awkfsv
+* `caeb06e` possibilité de spécifier les types des champs pour mysqlloadcsv
+* `b2c9f81` uawk requière maintenant de spécifier le nom de l'outil
+
+## Version 1.8.1 du 19/05/2015-10:45
+
+* `de8d690` Intégration de la branche annex-support
+* `2044181` ne pas synchroniser l'annexe en mode automatique
+
+## Version 1.8.0 du 19/05/2015-10:27
+
+* `4779695` Intégration de la branche annex-support
+* `89ad130` support de git-annex pour pp et pdev
+
+## Version 1.7.0 du 15/05/2015-16:11
+
+* `16ad285` Intégration de la branche nutools
+* `93d8262` rajouter le script nutools pour vérifier la version installée de nutools. renommer la fonction nutools() en pconf()
+
+## Version 1.6.0 du 04/05/2015-12:40
+
+* `0463b2c` Intégration de la branche norm_props
+* `48ca720` ajout de l'en-tête
+
+## Version 1.5.1 du 29/04/2015-10:14
+
+* `4c92f54` Intégration de la branche push-all
+* `02c15f9` pp -a pousse toutes les branches et tous les tags. ajouter les options -b et -t pour pousser respectivement toutes les branches et tous les tags
+
+## Version 1.4.1 du 29/04/2015-10:12
+
+Release erronée, à ignorer
+
+## Version 1.4.0 du 27/04/2015-18:12
+
+* `7122fc4` Intégration de la branche norm-properties
+* `845c54e` ajout de la fonction norm_properties
+
+## Version 1.3.0 du 24/04/2015-12:32
+
+* `bdc6e9b` Intégration de la branche localhost
+* `94b2b48` reconnaitre la valeur spéciale localhost pour check_hostname()
+
+## Version 1.2.4 du 20/04/2015-17:55
+
+* `988e045` bug
+
+## Version 1.2.3 du 20/04/2015-17:43
+
+Correction d'un bug avec la copie des fichiers
+
+* `d3ab6b8` bug
+* `7e0d44b` cosmetic
+
+## Version 1.2.2 du 20/04/2015-01:16
+
+## Version 1.2.1 du 20/04/2015-01:15
+
+* `145acfa` bug
+
+## Version 1.2.0 du 16/04/2015-13:59
+
+* `d756a6c` Intégration de la branche ldapt
+* `57dac04` support de xempty explicite, et de la possibilité de désactiver ce traitement
+* `75f21b5` support des attributs ordonnés
+* `00088b3` cosmetic
+
+## Version 1.1.1 du 16/04/2015-12:10
+
+Mise à jour de .ulibver
+
+## Version 1.1.0 du 16/04/2015-12:09
+
+* `4b445a2` Intégration de la branche ldapt-ev
+* `f8bd000` support de la nouvelle fonction ensureval
+* `dbd9605` Intégration de la branche ptools
+* `1fb27d6` pousser le tag quand il a été créé
+
+## Version 1.0.0 du 14/04/2015-10:05
+
+commencer à suivre les versions de nutools: cette release est la première de la
+série
+
+* `66bbf23` Intégration de la branche update-ulibver
+* `f5aeff7` maj de ulib
+* `073e7b0` Intégration de la branche ptools
+* `8f6a32b` forcer la création de la destination. afficher un message informatif
+* `48d9104` Intégration de la branche ptools
+* `6890d30` workaround pour le bug sous debian squeeze
+* `91de409` Intégration de la branche ptools
+* `cd50646` ne pas mettre à jour le fichier local
+* `f321f1c` Intégration de la branche ptools
+* `6258a6b` utiliser la version au lieu de la release
+* `5589314` bug
+* `10a7d4e` Intégration de la branche ptools
+* `cd92832` ne pas supprimer la branche develop
+* `3f1dc3e` Intégration de la branche ptools
+* `ce050db` ajout d'un changelog possibilité d'éditer le changelog avec -e supprimer les options courtes -z et -Z
+* `2bc314c` ajout de --merge-log supprimer les options courtes -z et -Z
+* `fc35a05` inclure la liste des modifications dans le log
+* `4578219` Intégration de la branche ptools
+* `5b0715e` vérifier la présence dans le dépôt distant
+* `0e6e94c` Intégration de la feature branch ptools
+* `10152b4` calcul de newver action delete
+* `6c8e750` implémener -z et -Z
+* `2f41de3` cosmetic
+* `5f6d5bb` ajout des options courtes -z et -Z
+* `18bb510` supprimer l'option courte -d qui est déjà utilisée pour diff
+* `dd2a712` ajout de -d et --force-delete
+* `38f04ff` maj doc
+* `523d3f1` doc pour nouvelle fonctionnalité à implémenter
+* `13dfb9a` Intégration de la feature branch prel-tag
+* `da96f72` ajout d'un tag après fusion de la branche dans master
+* `2a71a51` Intégration de la feature branch prel-tag
+* `09c59d8` ne pas afficher les erreurs
+* `3e514d5` maj doc
+* `f9d4556` Intégration de la feature branch linedots
+* `7ae9b48` ajout de elinedots
+* `ffa9195` fast-forwarder si possible
+* `f64117c` cosmetic
+* `d8a3ed4` checkout par défaut
+* `89be42e` ne pas utiliser csort
+* `881bcde` tenir compte de la valeur de origin
+* `7c67a7f` tenir compte des branches potentielles
+* `b757ca1` Intégration de la feature branch git-opts
+* `c3683a5` bug
+* `743e17b` fast-forwarder automatiquement la branche vers laquelle on bascule
+* `e3e3bbb` ajout de git_fast_forward
+* `1661ee5` ajout des fonctions git_is_ancestor(), git_should_ff(), git_should_push(), git_is_merged()
+* `2e215cc` utiliser l'api
+* `b975724` maj doc
+* `262d12e` toujours charger le module
+* `8ae0a8d` utiliser nouvelle API --add-metadata
+* `259e1be` ajout de --add-metadata support de --allow-empty pour --update
+* `8d3ab79` ajout de semver_addmetadata utiliser API moderne pour les perfs
+* `ac940b8` ne garder que les infos sur la branche courante dans les metadata
+* `1e11a57` ajouter pz pour faire une archive d'un projet
+* `9389fb0` autoriser --allow-emptyp pour l'action --show
+* `f90ad4d` bug
+* `26aa98f` cosmetic
+* `8deda74` cosmetic
+* `f8c4a54` calcul de la version avec --prel
+* `22a26d9` support des numéros style maven
+* `4f0a746` support des fichiers pom.xml
+* `6d85330` Intégration de la feature branch ptools
+* `f60787a` prel est maintenant en topevel
+* `7647d2d` prel est prêt à passer en toplevel
+* `7c36761` possibilité de faire -u et -m dans la même commande
+* `de618ae` possibilité de ne pas supprimer une feature branch après son intégration
+* `57bf621` cosmetic
+* `8d4d35d` mettre à jour la version avec pver
+* `f98c977` support de -v en mode auto
+* `4b64305` finaliser l'option -u
+* `5862e75` ne pas charger le fichier s'il n'existe pas
+* `e5b8b81` début d'implémentation de update
+* `9235ce1` nettoyage
+* `ffaed8a` quelques corrections
+* `9182dcf` maj api chargement depuis ~/etc/completion.d
+* `bbbc35a` maj api chargement depuis ~/etc/completion.d
+* `d2133c7` intégrer les modifications faites à l'ur
+* `90772f0` Intégration de la feature branch completion
+* `163df88` bug
+* `e8d683b` bug
+* `041a830` suite du support de bash_completion
+* `9c17a60` framework pour la complétion automatique
+* `bbbe6c4` l'option -c ne fait que le basculement ou la création. Le choix de la version se fera avec -u
+* `c5ba03b` ajouter les completions pour prel
+* `2b2b7f5` début d'implémentation de prel -c
+* `3f925ca` déplacer le code de pver dans ptools
diff --git a/CHANGES.txt b/CHANGES.txt
deleted file mode 100644
index 4113551..0000000
--- a/CHANGES.txt
+++ /dev/null
@@ -1,619 +0,0 @@
-## Version 5.3.0 du 28/09/2016-23:31
-
-5c466d8 ldif et ldap: match des suffixes sans tenir compte de la casse. modrdn prend un nouvel argument SUFFIX
-9eb566a runsmod: modifier chemins par défaut
-a082788 bash_completion: bug sur certains serveurs
-
-## Version 5.2.1 du 01/09/2016-15:44
-
-9995f95 runsmod: bug
-
-## Version 5.2.0 du 31/08/2016-22:30
-
-+ 361f1b2 Intégration de la branche runsmod-goodies
-| 8854469 maj de la config par défaut
-| f0a71e4 bug avec la génération de sysinfos.conf
-| 830a33b rruns calcule aussi les chemins d'hôtes automatiquement
-| 40f5347 préparer le calcul automatique des chemins
-| 2fbc599 bug avec git clone lors du basculement sur la branche develop
-| 5bef9b1 utiliser la même logique que uproject pour cloner en mode devel
-| 96afb2a mapping des répertoires de destination
-| 4b212d8 ne pas utiliser %n tout de suite
-| 30e5dda runs et rruns: améliorer le calcul des chemins
-| 55c5755 support de //...%h...
-| 409e406 préparer implémentation de %n
-+ 208f30d Intégration de la branche better-fndate
-| f388f27 ajouter des liens pour les fonctions courantes de fndate. En mode automatique, si le fichier contient déjà une mention de date, ne pas la modifier. rajouter l'option -@ pour forcer la modification de la date
-
-## Version 5.1.0 du 25/08/2016-15:36
-
-8a33418 ulib/ldif: support de l'opération modrdn
-+ b710461 Intégration de la branche apacheconfig
-| e52d6c6 déplacer la logique de apacheconfig dans le module apache.tools
-
-## Version 5.0.0 du 09/08/2016-09:42
-
-c00d9e4 cgilsxml.py: prévoir le cas où le fichier disparait pendant que la liste est construite
-2fc7392 uxpath.py: bug
-f85cd8a foreach: implémenter la syntaxe %var par défaut
-de383be foreach: définir des variables supplémentaires pour chaque fichier trouvé
-a7fd880 foreach: maj doc
-c01eb20 ulib/awk: maj doc
-04b723f qsql: compatibilité avec anciennes versions de bash
-dcf0e61 module apache: ajout de HTDOCSBASE pour le déploiement multi-homé
-7565461 woinst: support du déploiement d'applications construites avec Maven
-eb0a3be woctl _create: enlever le suffixe .woa par défaut
-d251a4e woinst: tenir compte des variables utilisateurs
-2fd51b6 pclone bascule automatiquement sur la branche develop si elle existe
-d056be4 foreach: ajouter l'option --parent
-63e78f4 ulib: compatibilité avec versions précédentes de bash
-64699c0 ensure_hostname(): clarification du message affiché
-22acf0a ulib: ajouter _qsql() et qsql() pour quoter des chaines sql
-18b2501 prel: améliorer l'affichage du résumé
-b8bf04b uawk dump: ajouter le format -v qui affiches des variables individuelles
-+ d57839d Intégration de la branche cgilsxml
-| 6e67302 la disposition, le type et l'encoding peuvent être spécifique à un expression --spec ou --glob
-| b7600aa possibilité de matcher des sous-répertoires dans l'expression --spec. Support du match de type --glob
-| a49d6e2 les valeurs None ne sont pas affichées. n'a pas de valeur
-16c1936 uawk dump: avec la méthode -a, afficher par défaut un tableau vide avant
-c6b6dd4 uawk: ajout de l'alias dump qui avait été oublié
-d8ab7f7 cgilsxml.py: cosmetic
-0204a21 cgilsxml.py: possibilité de classifier des fichiers au sein d'un groupe avec --break-on
-3a9bf04 cgilsxml.py: possibilité de spécifier la disposition du contenu, le type de contenu, ainsi que l'encoding
-a730609 cgilsxml.py: permettre de télécharger le fichier avec la disposition inline
-ce0193f cgilsxml.py: corriger la doc
-1eba9a7 foreach: améliorer l'affichage
-c669e8f utempl -t wosrc: si on crée un wosrc dans le répertoire java, enlever automatiquement le package pour les fichiers resources pour une configuration maven
-f0f7a6f utempl -t wosrc: génère des pages bootstrap par défaut
-8fced87 woctl run: permettre de choisir la version de java utilisée pour le lancement
-9fe17b3 Ajouter le script foreach
-f5db579 uxpath: support de la modification de la valeur d'un noeud
-3653f7d Ajout des fonctions {build,eval}cmd et upvar
-7091ecf support de la création d'un template wosrc pour un projet maven
-34dbba9 support de l'utilisation des valeurs spécifiques de GIT_ANNEX pour rsync avec git-annex
-470d7cf pcrone peut utiliser un répertoire existant
-e4b7729 corriger le template shell
-28bb531 activer l'auto-complétion sur debian jessie
-317dbca ajout de compileAndGo dans les templates
-01b9a68 ulib/vcs: corriger le code de git_track_branch. Utiliser ce code dans pdev --sync
-fc75fcd runsmod: quelques corrections mineures
-5058085 runsmod: Implémenter les fonctionnalités documentées
-12c521c indenter l'affichage des fonctions qui demandent une saisie de l'utilisateur
-86a5787 em: forcer -nw en mode non display
-e74d9e4 bug
-9218941 ajouter l'option -g à caturl
-fcacf64 maj doc
-01ea57e changer l'affichage de udir, et mettre à jour la doc
-9fe71b3 ajouter fndate pour dater les fichiers
-8143452 rendre ppath() plus résistant
-+ c9ce115 Intégration de la branche improve-tls
-| d9153af support de la configuration tls selon https://wiki.mozilla.org/Security/Server_Side_TLS
-135dbf6 diverses corrections sur runs
-3d5aeb2 Ajouter l'option -c à umountr
-278bf5a renommer rumount un umountr
-+ db76c12 Intégration de la branche runsmod-paths
-| a31f8c2 changer la convention de nommage pour les répertoires ~/runs
-5a31e7e ulib/java: ajout de la fonction get_java_version()
-f74b5e3 Générer la doc au format markdown pour tagadoc
-ded89be pdev: corrections pour supporter nouvelle version de git
-5d3e9fe runsmod: corriger les valeurs par défaut pour les hôtes dans la bulle serveur
-ada3686 uenv: bug dans le calcul des répertoires destination
-+ deaa416 Intégration de la branche runsmod-only
-| f96c482 proposer de créer la configuration par défaut
-| f04e862 implémentation initiale de runsmod
-42b9590 cosmetic
-9bc373f cgiparams.py: implémenter le code de retour
-1834d29 intégrer les fonctionnalités de cgiupload.py dans cgiparams.py
-
-## Version 4.4.1 du 15/04/2016-12:24
-
-a45fd99 awkrun: ajouter l'argument suffix à qsql(), cqsql(), cval()
-
-## Version 4.4.0 du 15/04/2016-12:04
-
-73391a9 awkrun: ajout d'un champ field à cqsql
-2f60fec git_track_branch(): support de git >= 1.8.x
-130b4d1 tenir compte du fichier /etc/debian_chroot pour initialiser UTOOLS_CHROOT
-48c0420 ne pas afficher d'erreur si apache n'est pas installé
-5e1a6cf Intégration de la branche rumount
-1ad804b implémentation initiale de rumount
-f460399 améliorer le calcul du répertoire destination avec pclone/pcrone
-6411e63 configurer la valeur de l'umask
-eb4362d apacheconfig: déploiement pour plusieurs systèmes à partir des mêmes sources
-
-## Version 4.3.0 du 07/04/2016-14:57
-
-d021c97 support de on_debian() avec des arguments
-
-## Version 4.2.0 du 06/04/2016-14:25
-
-a710c5a Intégration de la branche stdout
-ba969e3 ajout de stdredir pour pallier l'absence éventuelle de /dev/std*
-472f2c7 Intégration de la branche sysinfos
-1864cdf fonctions pour faciliter la gestion des dépendances sous debian
-2c27f03 uproject: ajouter la commande xconfig-export
-ed3de6d umail: ajout de l'option --gencmd
-
-## Version 4.1.1 du 08/03/2016-12:04
-
-0bd2b1f correction de bugs avec apacheconfig
-
-## Version 4.1.0 du 03/03/2016-11:02
-
-4024b2a pyulib/umail: possibilité de spécifier le type de contenu
-
-## Version 4.0.0 du 01/03/2016-19:08
-
-c46626c ldif: support de dumpcsv et printcsv dans get_transform_cmd()
-d661e43 doinplace fonctionne comme la fonction. la version étendue est un lien nommé doinplacex
-d6540ac dumpcsv: ajouter l'option --hname
-903d500 dumpcsv: ajouter les options --keep-fields, --skip-fields, --dump-headers
-af18332 implémenter printcsv
-383410a *csv: améliorer cohérences des arguments
-4808fa0 dumpcsv: ajout de l'option -b
-939b5ad implémenter dumpcsv et nettoyer un peu le code
-cb0e553 script doinplace qui mélange les fonctionnalités des fonctions doinplace et evalp
-0cf8e04 scripts noerror, noout, noerr qui fonctionnent comme les fonctions du même nom
-66249c9 nutools base: ajout de noerror(), noout(), noerr()
-db76488 maj doc
-40f1bf6 prel: après avoir fusionné une branche, revenir sur develop
-
-## Version 3.5.0 du 26/02/2016-11:35
-
-4648b3f awkrun: ajout de la fonction qarr()
-81e7f9b correction de certains messages affichés
-0ea24ec ajout de sqlcsv
-ad06535 pu: autoriser fast-forward même en cas de modifications locales
-1c397e8 ajout des fonctions awk cqsql(), sval(), cval(). réorganiser et clarifier la doc
-
-## Version 3.4.2 du 10/02/2016-11:45
-
-## Version 3.4.1 du 10/02/2016-11:45
-
-a702b89 mergecsv: bug quand left ne contient qu'un seul champ vide
-
-## Version 3.4.0 du 09/02/2016-11:25
-
-788e1ff cgilsxml.py: ajout de l'option -E. bug avec le tri sur des valeurs inexistantes
-
-## Version 3.3.0 du 08/02/2016-09:41
-
-da3ef60 cgilsxml.py: ajouter de squery_string permettant d'ajouter un préfixe
-bb25711 cgi: cgierror et cgiredirect arrêtent le script
-
-## Version 3.2.0 du 07/02/2016-23:05
-
-24f3211 cgiparams.py et cgilsxml.py: modifications pour gérer la construction de QUERY_STRING
-
-## Version 3.1.0 du 04/02/2016-13:52
-
-3190a32 cgilsxml.py: ajout de la variable script_base, qui permet de faire des urls relatives
-f4537af ussh: bug dans l'analyse des arguments
-9992505 ussh: pas de valeur par défaut pour DEFAULT_USER; --parse affiche toutes les options
-b19059e Intégration de la branche ussh-auto-persist
-5c75737 ussh: configuration du multiplexage pour certains hôtes
-
-## Version 3.0.1 du 31/12/2015-12:36
-
-56c305a awk ne supporte pas \s
-
-## Version 3.0.0 du 24/12/2015-15:39
-
-4b1c30b nouvelles fonctions pour le module cgi. cgilsxml, cgiupload et cgiparams sont rassemblés dans le module cgisupport
-
-## Version 2.26.0 du 24/12/2015-12:17
-
-d5a2cce cgilsxml.py: rajouter la variable env/query_vars
-
-## Version 2.25.0 du 24/12/2015-11:15
-
-6c73940 cgilsxml.py: désactiver le cache par défaut
-
-## Version 2.24.1 du 24/12/2015-10:12
-
-3aba3e3 bug
-
-## Version 2.24.0 du 24/12/2015-09:58
-
-b288cf2 apacheconfig: support des fichiers de confs --> /etc/apache2/cond.d sur debian wheezy-
-2e3fe66 ussh: forcer l'allocation d'un tty avec --cc
-58fa40c ussh: ajouter le support de uwatch
-7bc63c5 maj doc uwatch
-2d2754b ajout de uwatch pour afficher un compte
-4376fff maj doc
-bb176d7 maj du template pour runsconfig
-
-## Version 2.23.1 du 15/12/2015-11:01
-
-d8d0cc8 cgilsxml: sélectionner automatiquement un groupe seul
-
-## Version 2.23.0 du 15/12/2015-10:06
-
-501a7d2 cgilsxml: script_name et xslt peuvent être spécifié dans les paramètres QUERY_STRING
-ebe4599 Intégration de la branche runs
-35eadc1 correction d'un bug avec la recherche d'un fichier de recette
-98ba626 les recettes ont maintenant l'extension .rr par défaut
-a2e863e chercher aussi les scripts dans le sous-répertoire runs dans les répertoires d'hôte
-
-## Version 2.22.0 du 07/12/2015-19:05
-
-dbc4d9a uscrontab: ne pas afficher plusieurs fois un même message quand le verrou est posé. n'afficher le message sur la pause qu'avec un tty
-9821d20 ajouter le lien vers cgilsxml.py
-
-## Version 2.21.0 du 07/12/2015-15:12
-
-d7b468d cgilsxml: ajouter les variables dlname, size, Y, m, d, H, M, S. maj doc
-eac94a7 cgiupload: possibilité de filtrer sur le nom du fichier ou son type de contenu
-fae2111 ajout de cgilsxml
-26fe709 apacheconfig: -S peut aussi être utilisé avec --localhosts
-7c6ad6a apacheconfig: nouvelles options pour le développement
-c2d5eab pxs fait aussi git pull avec un dépôt sans annexe
-dca7bee pxs fonctionne pour les dépôt normaux comme pci -A
-
-## Version 2.20.0 du 12/11/2015-15:41
-
-16d95d2 apache_autoconf(): déploiement des certificats autorité
-775a021 nutools: ajout de cpvcs() pour copier avec la sémantique de cpnovcs() les fichiers de VCS aussi
-1ca0ee5 runs: ajout des options --force, --copy-links et --with-vcs à ref()
-91686fb templatectl: il n'est plus nécessaire de spécifier explicitement fichier.template
-
-## Version 2.19.0 du 02/11/2015-11:03
-
-37f3bff apacheconfig: diverses corrections de bugs
-5d3861b apacheconfig: si host==@@dhost@@, alors hostname=@@dhostname@@ et aliases=@@daliases@@
-27592d4 apacheconfig: support des hôtes dynamiques ou statiques
-93ac7ea re-écrire la gestion des templates pour apacheconfig et runsconfig
-
-## Version 2.18.0 du 27/10/2015-12:05
-
-434403a Intégration de la branche uscrontab
-2118885 uscrontab: possibilité de mettre en pause sans modifier les planifications en cours
-0eeee20 awkrun: renommer les fonctions quote_*
-18691c8 upassword: maj doc et support des commentaires pour le mode batch
-
-## Version 2.17.2 du 26/09/2015-12:25
-
-1837a0c pxs: corriger xget, xcopy, xmove pour utiliser directement git annex sync
-
-## Version 2.17.1 du 26/09/2015-12:21
-
-c8c6744 pxs: support des versions <= 5.20150825
-
-## Version 2.17.0 du 26/09/2015-11:51
-
-552e4ba améliorer pxs pour un dépôt en mode direct
-2ce66e6 maj doc
-
-## Version 2.16.0 du 10/09/2015-11:16
-
-42aa7ea fonctions e*: changer l'affichage en mode NO_COLOR pour afficher les préfixes complets
-
-## Version 2.15.0 du 08/09/2015-10:14
-
-69ee45a Intégration de la branche prel-fixes
-47b6e5b créer VERSION.txt et CHANGES.txt à la racine du projet
-9d8a747 faire le push à la fin des opérations d'update et/ou de merge
-
-## Version 2.14.0 du 03/09/2015-09:04
-
-9dcd60b pxs transfert les données aussi en mode direct
-
-## Version 2.13.0 du 01/09/2015-15:44
-
-8d2e386 uscrontab: permettre d'ignorer le code d'erreur pour une commande planifiée
-aa989ef Intégration de la branche uinst
-58d9f16 uinst -y pose toujours la question si le répertoire est calculé automatiquement
-594fd4e activer l'autocomplétion pour uinst -h
-
-## Version 2.12.1 du 24/08/2015-16:12
-
-e356c2b bug avec le calcul du système
-e040cac Avec les fonctions e*, afficher le statut de façon explicite en mode non coloré
-
-## Version 2.12.0 du 23/08/2015-22:57
-
-dcb85ac Améliorer le déploiement uinst:rsync avec préfixes pour les hôtes distants
-
-## Version 2.11.0 du 21/08/2015-10:31
-
-d9282f7 uinst: ajouter l'option -h pour la méthode uinst:rsync
-7643573 nettoyer la branche
-
-## Version 2.10.0 du 19/08/2015-10:23
-
-6ba41b9 support de --uses-su pour ruinst -C
-
-## Version 2.9.0 du 10/08/2015-14:04
-
-447d13f support de nouvelles versions d'OS pour sysinfos
-48e111a fconv et fnconv: le premier argument est le fichier s'il n'est pas spécifié avec -f
-c29f4b9 mkiso: nouvelles options -A et -V
-662b82f caturl --check ne doit pas afficher l'url
-
-## Version 2.8.0 du 22/07/2015-15:09
-
-0f5b572 uinst installe maintenant les profils en mode partagé par défaut
-fb6b492 améliorer l'affichage des scripts geturl et openurl
-
-## Version 2.7.0 du 17/07/2015-22:03
-
-7e2a6c3 update-nutools ignore par défaut l'eventuel proxy défini par http_proxy
-13215c3 apacheconfig: améliorer l'affichage de l'aide et support du répertoire .apacheconfig
-27f5f7a pyulib honore maintenant UTOOLS_NO_COLORS
-3ee6cb4 diminuer l'indentation pour les fonctions e*
-d4ac5f7 modifier l'affichage des fonction e*
-
-## Version 2.6.0 du 10/07/2015-17:32
-
-efa6b3a Intégration de la branche ftps
-3288999 authftp: support tls en forçant l'utilisation de lftp
-58e7f6f pconf reconnait maintenant les arguments offline et online
-
-## Version 2.5.1 du 03/07/2015-08:29
-
-abc4cb9 dumpclients: possibilité de choisir les champs supplémentaires à afficher
-
-## Version 2.5.0 du 03/07/2015-07:39
-
-2e15cbe Ajouter l'option -z à dumpclients
-
-## Version 2.4.0 du 01/07/2015-04:04
-
-fda97a8 mise à jour de upassword
-
-## Version 2.3.0 du 01/07/2015-03:09
-
-f581aa9 Intégration de la branche pdev-merges
-80d7a73 ajouter les options -b et -s à pdev
-
-## Version 2.2.0 du 24/06/2015-16:19
-
-98cfdfc Intégration de la branche update-upassword
-34f027b bug avec la présence du scheme dans sha
-b5e6c13 Intégration de la branche update-upassword
-e4e2fa7 mise à jour upassword pour afficher sha en hexadécimal
-
-## Version 2.1.1 du 22/06/2015-11:37
-
-40225b0 Intégration de la branche proxy-default
-2fa0791 profile.d/proxy lit aussi les valeurs par défaut pour l'hôte
-
-## Version 2.1.0 du 22/06/2015-10:25
-
-2a3eb76 Intégration de la branche uenv-modifs
-bd8c7f8 correction d'un bug avec le nom final
-d73c929 correction d'un bug avec le choix du répertoire de destination
-e9089d8 les répertoires de profil partagé et de machine sont traités comme un seul répertoire
-e3f76cd possibilité de spécifier si un profil doit être installé dans le répertoire de profil partagé
-
-## Version 2.0.0 du 22/06/2015-00:48
-
-8286b29 Intégration de la branche uenv-modifs
-c43cda0 les répertoires de profil sont spécifiques au nom de la machine
-
-## Version 1.19.0 du 21/06/2015-10:27
-
-387dec2 Intégration de la branche add-pxwa
-4d0b734 ajout de la commande xwebapp
-
-## Version 1.18.0 du 09/06/2015-10:40
-
-01e2929 Intégration de la branche fix-javaproperties
-b24e9ff norm_properties() affiche les caractères en majuscule, comme JavaProperties#store()
-
-## Version 1.17.0 du 07/06/2015-14:00
-
-e2d0c0c Intégration de la branche pdev-fix
-1cc3bd4 ajouter l'option --sync à pdev
-
-## Version 1.16.0 du 04/06/2015-22:14
-
-4a15085 Intégration de la branche verbose-update
-8a27561 pu: afficher un message s'il y a des modifications locales
-
-## Version 1.15.0 du 22/05/2015-17:03
-
-e715087 Intégration de la branche update-upassword
-a74a373 upassword: possibilité de spécifier de façon dynamique la ligne à afficher après
-
-## Version 1.14.0 du 22/05/2015-16:41
-
-d8f20c3 Intégration de la branche update-upassword
-dea524a ajout du mode batch
-
-## Version 1.13.0 du 22/05/2015-16:04
-
-275bff8 Intégration de la branche update-upassword
-1ce1d98 mise à jour de upassword
-
-## Version 1.12.0 du 22/05/2015-13:37
-
-57fc84d correction d'un bug avec prel -s
-cf108d7 Intégration de la branche prel-show-modifs
-a744f48 prel -s afficher la liste des modifications qui seraient enregistrées
-
-## Version 1.11.0 du 22/05/2015-11:41
-
-2984052 Intégration de la branche quiet-completion
-755cfa7 ne pas afficher les erreurs pour les fonctions de complétion de git
-2b5eb2a Intégration de la branche pu
-b004730 uproject update fait fetch puis merge, manuellement
-
-## Version 1.10.0 du 20/05/2015-12:08
-
-bf1d86a Intégration de la branche pu-auto-forward
-8bf8164 fast-forwarder automatiquement les branches locales par rapport aux branches distantes
-8baabea Intégration de la branche ptools-maj-topic
-5ff5b7d déterminer les branches de topic: ignorer les branches avec un slash dans le nom
-
-## Version 1.9.0 du 19/05/2015-18:25
-
-5933089 Intégration de la branche awkfsv
-caeb06e possibilité de spécifier les types des champs pour mysqlloadcsv
-b2c9f81 uawk requière maintenant de spécifier le nom de l'outil
-
-## Version 1.8.1 du 19/05/2015-10:45
-
-de8d690 Intégration de la branche annex-support
-2044181 ne pas synchroniser l'annexe en mode automatique
-
-## Version 1.8.0 du 19/05/2015-10:27
-
-4779695 Intégration de la branche annex-support
-89ad130 support de git-annex pour pp et pdev
-
-## Version 1.7.0 du 15/05/2015-16:11
-
-16ad285 Intégration de la branche nutools
-93d8262 rajouter le script nutools pour vérifier la version installée de nutools. renommer la fonction nutools() en pconf()
-
-## Version 1.6.0 du 04/05/2015-12:40
-
-0463b2c Intégration de la branche norm_props
-48ca720 ajout de l'en-tête
-
-## Version 1.5.1 du 29/04/2015-10:14
-
-4c92f54 Intégration de la branche push-all
-02c15f9 pp -a pousse toutes les branches et tous les tags. ajouter les options -b et -t pour pousser respectivement toutes les branches et tous les tags
-
-## Version 1.4.1 du 29/04/2015-10:12
-
-Release erronée, à ignorer
-
-## Version 1.4.0 du 27/04/2015-18:12
-
-7122fc4 Intégration de la branche norm-properties
-845c54e ajout de la fonction norm_properties
-
-## Version 1.3.0 du 24/04/2015-12:32
-
-bdc6e9b Intégration de la branche localhost
-94b2b48 reconnaitre la valeur spéciale localhost pour check_hostname()
-
-## Version 1.2.4 du 20/04/2015-17:55
-
-988e045 bug
-
-## Version 1.2.3 du 20/04/2015-17:43
-
-Correction d'un bug avec la copie des fichiers
-
-d3ab6b8 bug
-7e0d44b cosmetic
-
-## Version 1.2.2 du 20/04/2015-01:16
-
-## Version 1.2.1 du 20/04/2015-01:15
-
-145acfa bug
-
-## Version 1.2.0 du 16/04/2015-13:59
-
-d756a6c Intégration de la branche ldapt
-57dac04 support de xempty explicite, et de la possibilité de désactiver ce traitement
-75f21b5 support des attributs ordonnés
-00088b3 cosmetic
-
-## Version 1.1.1 du 16/04/2015-12:10
-
-Mise à jour de .ulibver
-
-## Version 1.1.0 du 16/04/2015-12:09
-
-4b445a2 Intégration de la branche ldapt-ev
-f8bd000 support de la nouvelle fonction ensureval
-dbd9605 Intégration de la branche ptools
-1fb27d6 pousser le tag quand il a été créé
-
-## Version 1.0.0 du 14/04/2015-10:05
-
-commencer à suivre les versions de nutools: cette release est la première de
-la série
-
-66bbf23 Intégration de la branche update-ulibver
-f5aeff7 maj de ulib
-073e7b0 Intégration de la branche ptools
-8f6a32b forcer la création de la destination. afficher un message informatif
-48d9104 Intégration de la branche ptools
-6890d30 workaround pour le bug sous debian squeeze
-91de409 Intégration de la branche ptools
-cd50646 ne pas mettre à jour le fichier local
-f321f1c Intégration de la branche ptools
-6258a6b utiliser la version au lieu de la release
-5589314 bug
-10a7d4e Intégration de la branche ptools
-cd92832 ne pas supprimer la branche develop
-3f1dc3e Intégration de la branche ptools
-ce050db ajout d'un changelog possibilité d'éditer le changelog avec -e supprimer les options courtes -z et -Z
-2bc314c ajout de --merge-log supprimer les options courtes -z et -Z
-fc35a05 inclure la liste des modifications dans le log
-4578219 Intégration de la branche ptools
-5b0715e vérifier la présence dans le dépôt distant
-0e6e94c Intégration de la feature branch ptools
-10152b4 calcul de newver action delete
-6c8e750 implémener -z et -Z
-2f41de3 cosmetic
-5f6d5bb ajout des options courtes -z et -Z
-18bb510 supprimer l'option courte -d qui est déjà utilisée pour diff
-dd2a712 ajout de -d et --force-delete
-38f04ff maj doc
-523d3f1 doc pour nouvelle fonctionnalité à implémenter
-13dfb9a Intégration de la feature branch prel-tag
-da96f72 ajout d'un tag après fusion de la branche dans master
-2a71a51 Intégration de la feature branch prel-tag
-09c59d8 ne pas afficher les erreurs
-3e514d5 maj doc
-f9d4556 Intégration de la feature branch linedots
-7ae9b48 ajout de elinedots
-ffa9195 fast-forwarder si possible
-f64117c cosmetic
-d8a3ed4 checkout par défaut
-89be42e ne pas utiliser csort
-881bcde tenir compte de la valeur de origin
-7c67a7f tenir compte des branches potentielles
-b757ca1 Intégration de la feature branch git-opts
-c3683a5 bug
-743e17b fast-forwarder automatiquement la branche vers laquelle on bascule
-e3e3bbb ajout de git_fast_forward
-1661ee5 ajout des fonctions git_is_ancestor(), git_should_ff(), git_should_push(), git_is_merged()
-2e215cc utiliser l'api
-b975724 maj doc
-262d12e toujours charger le module
-8ae0a8d utiliser nouvelle API --add-metadata
-259e1be ajout de --add-metadata support de --allow-empty pour --update
-8d3ab79 ajout de semver_addmetadata utiliser API moderne pour les perfs
-ac940b8 ne garder que les infos sur la branche courante dans les metadata
-1e11a57 ajouter pz pour faire une archive d'un projet
-9389fb0 autoriser --allow-emptyp pour l'action --show
-f90ad4d bug
-26aa98f cosmetic
-8deda74 cosmetic
-f8c4a54 calcul de la version avec --prel
-22a26d9 support des numéros style maven
-4f0a746 support des fichiers pom.xml
-6d85330 Intégration de la feature branch ptools
-f60787a prel est maintenant en topevel
-7647d2d prel est prêt à passer en toplevel
-7c36761 possibilité de faire -u et -m dans la même commande
-de618ae possibilité de ne pas supprimer une feature branch après son intégration
-57bf621 cosmetic
-8d4d35d mettre à jour la version avec pver
-f98c977 support de -v en mode auto
-4b64305 finaliser l'option -u
-5862e75 ne pas charger le fichier s'il n'existe pas
-e5b8b81 début d'implémentation de update
-9235ce1 nettoyage
-ffaed8a quelques corrections
-9182dcf maj api chargement depuis ~/etc/completion.d
-bbbc35a maj api chargement depuis ~/etc/completion.d
-d2133c7 intégrer les modifications faites à l'ur
-90772f0 Intégration de la feature branch completion
-163df88 bug
-e8d683b bug
-041a830 suite du support de bash_completion
-9c17a60 framework pour la complétion automatique
-bbbe6c4 l'option -c ne fait que le basculement ou la création. Le choix de la version se fera avec -u
-c5ba03b ajouter les completions pour prel
-2b2b7f5 début d'implémentation de prel -c
-3f925ca déplacer le code de pver dans ptools
diff --git a/TODO.md b/TODO.md
new file mode 100644
index 0000000..32dea67
--- /dev/null
+++ b/TODO.md
@@ -0,0 +1,3 @@
+# TODO
+
+-*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary
\ No newline at end of file
diff --git a/VERSION.txt b/VERSION.txt
index 03f488b..09b254e 100644
--- a/VERSION.txt
+++ b/VERSION.txt
@@ -1 +1 @@
-5.3.0
+6.0.0
diff --git a/apacheconfig b/apacheconfig
index ec52ddf..6f824b6 100755
--- a/apacheconfig
+++ b/apacheconfig
@@ -16,6 +16,19 @@ OPTIONS
Créer un nouveau répertoire de configuration pour un hôte
-d, --destdir DESTDIR[=$TEMPLATECTL_NAME]
Nom du répertoire local de configuration.
+ -f,--full
+ --partial
+ Indiquer respectivement que la configuration est complète ou partielle.
+ Avec la configuration complète, le serveur peut être complètement
+ configuré avec tous les fichiers présents. Avec la configuration
+ partielle, uniquement les informations spécifiques à un service en
+ particulier sont disponibles.
+ Cette option est utilisée avec --create. Par défaut, la configuration
+ est partielle.
+ Pour le moment, la seule différence est que --full crée un fichier de
+ configuration nommé .apacheconfig alors que --partial crée un fichier
+ nommé apacheconfig.conf qui est visible et donc découvrable et éditable
+ plus facilement
-t, --template [OPT]
Gérer les fichiers du répertoire local avec templatectl. La valeur de
@@ -46,9 +59,12 @@ OPTIONS
Lors du déploiement de la configuration, les valeurs des variables
dynamiques sont remplacées dans les fichiers destination.
Les arguments qui restent sont passés tels quels à apache_autoconf
+ -N, --network-config
+ Mettre aussi à jour la configuration réseau.
-r, --certsdir CERTSDIR
Spécifier le cas échéant le répertoire contenant les certificats à
- déployer. Cet argument est requis si le répertoire certsconf/ existe.
+ déployer. Cet argument est requis si le répertoire certsconf/ existe,
+ sauf si les certificats sont déjà déployés.
--localhosts
Créer dans le fichier /etc/hosts tous les noms d'hôte ayant un suffixe
@@ -63,24 +79,45 @@ OPTIONS
-S, --one-site SITE
Ne déployer que le fichier de site spécifié. Cette option est utilisée
avec --deploy ou --localhosts et est utile pour le développement et les
- tests."
+ tests.
+
+ -k, --new-site HOST.TLD
+ Créer une définition pour un nouveau site à partir des fichiers du
+ répertoires templates/
+ -K, --new-site-templatedir TEMPLATEDIR
+ Spécifier le répertoire source pour les templates de site utilisés par
+ l'option --new-site. Par défaut, utiliser le répertoire templates/ situé
+ dans le répertoire de configuration.
+ Si TEMPLATEDIR est un nom simple sans séparateur de chemin '/' et qu'un
+ répertoire templates/TEMPLATEDIR existe, alors prendre ce répertoire-là
+ comme source.
+ --new-site-force
+ Avec --new-site, utiliser le nom d'hôte fourni même s'il n'est pas
+ pleinement qualifié"
}
action=
destdir=
-nohideconfig=
+nohideconfig=auto
templateopt=
+FULLCONF=
+netconf=
aac_certsdir=
bits=
oneconf=
onemodule=
onesite=
+site_host=
+site_templdir=
+site_force=
args=(
--help '$exit_with display_help'
-c,--create action=create
-d:,--destdir: destdir=
--no-hideconfig nohideconfig=1
--hideconfig nohideconfig=
+ -f,--full FULLCONF=1
+ --partial FULLCONF=
-t::,--template:: '$set@ templateopt; action=template'
--help-template '$templateopt=-help; action=template'
-l,--list '$templateopt=l; action=template'
@@ -96,15 +133,23 @@ args=(
-8,--jessie '$array_add TEMPLATECTL_VARS sysver=jessie'
--bits: bits=
-u,--update,--deploy action=deploy
+ -N,--network-config netconf=1
-r:,--certsdir: aac_certsdir=
--localhosts action=localhosts
-C:,--one-conf: oneconf=
-M:,--one-module: onemodule=
-S:,--one-site: onesite=
+ -k:,--new-site: '$action=new-site; set@ site_host'
+ -K:,--new-site-templatedir: site_templdir=
+ --new-site-force site_force=
)
parse_args "$@"; set -- "${args[@]}"
-apacheconfig_loadconf "$destdir" || die
+if [ "$nohideconfig" == auto ]; then
+ [ -n "$FULLCONF" ] && nohideconfig= || nohideconfig=1
+fi
+
+apacheconfig_loadconf "$destdir" "$nohideconfig" || die
apacheconfig_sysinfos "$sysname" "$sysdist" "$sysver" "$bits"
################################################################################
@@ -128,7 +173,7 @@ if [ "$action" == create ]; then
ask_yesno "Le fichier $(ppath "$config") sera écrasé. Voulez-vous continuer?" O || die
rm -f "$config" || die
fi
- templatectl -d "$destdir" --config "$config" --no-load-vars -m --write-vars
+ templatectl -d "$destdir" --config "$config" ${nohideconfig:+--no-hide-config} --no-load-vars -m --write-vars
################################################################################
elif [ "$action" == template ]; then
@@ -142,7 +187,9 @@ elif [ "$action" == deploy -o "$action" == localhosts ]; then
[ -d "$destdir" ] || die "$destdir: répertoire introuvable"
args=(
- -d "$destdir" --$action ${aac_certsdir:+-r "$aac_certsdir"}
+ -d "$destdir" --$action
+ ${netconf:+--network-config}
+ ${aac_certsdir:+-r "$aac_certsdir"}
${oneconf:+--one-conf "$oneconf"}
${onemodule:+--one-module "$onemodule"}
${onesite:+--one-site "$onesite"}
@@ -160,11 +207,113 @@ elif [ "$action" == deploy -o "$action" == localhosts ]; then
apacheconfig_deploy \
"$destdir" "$aac_certsdir" \
"$config" "$oneconf" "$onemodule" "$onesite" \
- "$custom_sysinfos" "$sysname" "$sysdist" "$sysver" "$bits" || die
+ "$custom_sysinfos" "$sysname" "$sysdist" "$sysver" "$bits" \
+ "$netconf" || die
eend
elif [ "$action" == localhosts ]; then
etitle "Mise à jour de /etc/hosts"
apacheconfig_deploy_localhosts "$destdir" "$aac_certsdir" "$onesite" || die
eend
fi
+
+################################################################################
+elif [ "$action" == new-site ]; then
+ host="$site_host"
+ templdir="$site_templdir"
+ if [[ "$templdir" != */* ]] && [ -d "$destdir/templates/$templdir" ]; then
+ templdir="$destdir/templates/$templdir"
+ elif [ -z "$templdir" ]; then
+ templdir="$destdir/templates"
+ fi
+ [ -d "$templdir" ] || die "$templdir: répertoire introuvable"
+ force="$site_force"
+
+ clrtempl=
+ ssltempl=
+ certstempl=
+ wwwtempl=
+ array_from_lines templs "$(list_files "$templdir" "*SITE.conf")"
+ [ ${#templs[*]} -gt 0 ] && clrtempl="${templs[0]}"
+ array_from_lines templs "$(list_files "$templdir" "*SITE.ssl.conf")"
+ [ ${#templs[*]} -gt 0 ] && ssltempl="${templs[0]}"
+ array_from_lines templs "$(list_files "$templdir" "*SITE-certs.conf")"
+ [ ${#templs[*]} -gt 0 ] && certstempl="${templs[0]}"
+ array_from_lines templs "$(list_dirs "$templdir" "*SITE")"
+ [ ${#templs[*]} -gt 0 ] && wwwtempl="${templs[0]}"
+
+ found=
+ for i in "$clrtempl" "$ssltempl" "$certstempl" "$wwwtempl"; do
+ [ -n "$i" ] && { found=1; break; }
+ done
+ [ -n "$found" ] || die "Aucun template disponible"
+
+ if [ -z "$force" ] && [[ "$host" != *.* ]]; then
+ die "$host n'est pas un nom d'hôte pleinement qualifié"
+ fi
+
+ etitle "$host"
+ hostname="${host%%.*}"
+ clrconf="${clrtempl/SITE/$hostname}"
+ sslconf="${ssltempl/SITE/$hostname}"
+ certsconf="${certstempl/SITE/$hostname}"
+ wwwdir="${wwwtempl/SITE/$hostname}"
+
+ mkdir -p "$destdir/certsconf"
+ mkdir -p "$destdir/sites"
+
+ sedscript="\
+s/SITE.TLD/$host/g
+s/SITE/$hostname/g"
+
+ if [ -z "$clrtempl" ]; then
+ :
+ elif [ ! -f "$templdir/$clrtempl" ]; then
+ ewarn "Le fichier $(ppath "$templdir/$clrtempl") n'existe pas. La copie ne sera pas complète"
+ elif [ -f "$destdir/sites/$clrconf" ]; then
+ ewarn "Le fichier sites/$clrconf existe déjà. Il ne sera pas écrasé."
+ else
+ estep "sites/$clrconf"
+ sed "$sedscript" "$templdir/$clrtempl" >"$destdir/sites/$clrconf" || die
+ fi
+
+ if [ -z "$ssltempl" ]; then
+ :
+ elif [ ! -f "$templdir/$ssltempl" ]; then
+ ewarn "Le fichier $(ppath "$templdir/$ssltempl") n'existe pas. La copie ne sera pas complète"
+ elif [ -f "$destdir/sites/$sslconf" ]; then
+ ewarn "Le fichier sites/$sslconf existe déjà. Il ne sera pas écrasé."
+ else
+ estep "sites/$sslconf"
+ sed "$sedscript" "$templdir/$ssltempl" >"$destdir/sites/$sslconf" || die
+ fi
+
+ if [ -z "$certstempl" ]; then
+ :
+ elif [ ! -f "$templdir/$certstempl" ]; then
+ ewarn "Le fichier $(ppath "$templdir/$certstempl") n'existe pas. La copie ne sera pas complète"
+ elif [ -f "$destdir/certsconf/$certsconf" ]; then
+ ewarn "Le fichier certsconf/$certsconf exite déjà. Il ne sera pas écrasé."
+ else
+ estep "certsconf/$certsconf"
+ sed "$sedscript" "$templdir/$certstempl" >"$destdir/certsconf/$certsconf" || die
+ fi
+
+ if [ -z "$wwwtempl" ]; then
+ :
+ elif [ ! -d "$templdir/$wwwtempl" ]; then
+ ewarn "Le répertoire $(ppath "$templdir/$wwwtempl") n'existe pas. La copie ne sera pas complète"
+ elif [ -d "$destdir/$wwwdir" ]; then
+ ewarn "Le répertoire $wwwdir existe déjà. Il ne sera pas écrasé."
+ else
+ estep "$wwwdir"
+ cpdirnovcs "$templdir/$wwwtempl" "$destdir/$wwwdir" || die
+ sed -i "$sedscript" "$destdir/$wwwdir/.udir" || die
+ fi
+
+ eend
+
+ if [ -n "$wwwtempl" ]; then
+ eimportant "Ne pas oublier le cas échéant de mettre à jour HTDMAPPINGS dans $(ppath "$config") e.g.
+ HTDMAPPINGS=($wwwdir)"
+ fi
fi
diff --git a/chrono.py b/chrono.py
new file mode 100755
index 0000000..e82f521
--- /dev/null
+++ b/chrono.py
@@ -0,0 +1,311 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 mode: python -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
+
+u"""Afficher un chronomètre"""
+
+import os, sys, re, subprocess, traceback
+from os import path
+from datetime import date as Date, time as Time
+from datetime import datetime as Datetime, timedelta as Timedelta
+from types import IntType, LongType
+
+DEFAULT_SOUND = path.join(path.dirname(__file__), 'lib', 'chrono.wav')
+
+def win_playSound(name):
+ try: import winsound as s
+ except: return
+ if name is None:
+ s.PlaySound(None, s.SND_ASYNC)
+ else:
+ scriptdir = path.split(path.abspath(sys.argv[0]))[0]
+ soundfile = path.join(scriptdir, name)
+ s.PlaySound(soundfile, s.SND_FILENAME + s.SND_ASYNC)
+
+def linux_playSound(name):
+ subprocess.call(['/usr/bin/aplay', '-Nq', name])
+
+def playSound(name=None):
+ if os.name == 'nt':
+ return win_playSound(name)
+ elif sys.platform.startswith('linux'):
+ return linux_playSound(name)
+
+def isnum(i):
+ return type(i) in (IntType, LongType)
+
+DEFAULT_TIMEOUT = '5'
+
+RE_DESTHOUR = re.compile(r'@(\d+)(?:[:.](\d+)(?:[:.](\d+))?)?$')
+def parse_desthour(s):
+ mo = RE_DESTHOUR.match(s)
+ if mo is None: return None
+ h, m, s = mo.groups()
+ if h is None: h = 0
+ if m is None: m = 0
+ if s is None: s = 0
+ h, m, s = int(h), int(m), int(s)
+ src = Datetime.today()
+ srcdate = src.date(); srctime = src.time()
+ destdate = srcdate; desttime = Time(h, m, s)
+ if desttime <= srctime: destdate = destdate + Timedelta(1)
+ src = Datetime.combine(srcdate, srctime)
+ dest = Datetime.combine(destdate, desttime)
+ delta = dest - src
+ return delta.total_seconds()
+
+RE_TIMEOUT = re.compile(r'(\d+)(?:[:.](\d+)(?:[:.](\d+))?)?$')
+def parse_timeout(s):
+ mo = RE_TIMEOUT.match(s)
+ if mo is None: return None
+ h, m, s = mo.groups()
+ if m is None and s is None:
+ # M
+ m = h
+ h = None
+ elif s is None:
+ # M:S
+ s = m
+ m = h
+ h = None
+ else:
+ # H:M:S
+ pass
+ if h is None: h = 0
+ if m is None: m = 0
+ if s is None: s = 0
+ h, m, s = int(h), int(m), int(s)
+ return h * 3600 + m * 60 + s
+
+class Chrono:
+ timeout = None
+ date_start = None
+ date_end = None
+ initial = None
+ started = None
+
+ def __init__(self, timeout=None, start=False):
+ self.set_timeout(timeout)
+ if start: self.start()
+
+ def __format(self, delta):
+ h = delta.seconds // 3600
+ seconds = delta.seconds % 3600
+ m = seconds // 60
+ s = seconds % 60
+ if h > 0: return '%02i:%02i:%02i' % (h, m, s)
+ else: return '%02i:%02i' % (m, s)
+
+ def __delta(self, timeout):
+ return Timedelta(seconds=timeout)
+
+ def set_timeout(self, timeout=None):
+ if timeout is not None and not isnum(timeout):
+ tmp = parse_desthour(str(timeout))
+ if tmp is None: tmp = parse_timeout(timeout)
+ if tmp is None: tmp = int(timeout) * 60
+ timeout = tmp
+ self.timeout = timeout
+ if timeout is None: self.initial = '00:00'
+ else: self.initial = self.__format(self.__delta(timeout))
+
+ def start(self, timeout=None):
+ if timeout is None: timeout = self.timeout
+ self.date_start = Datetime.today()
+ if timeout is None: self.date_end = None
+ else: self.date_end = self.date_start + self.__delta(timeout)
+ self.started = True
+
+ def stop(self):
+ self.started = False
+
+ def is_started(self):
+ return self.started
+
+ def is_end(self):
+ return self.started and self.date_end is not None and Datetime.today() >= self.date_end
+
+ def __repr__(self):
+ now = Datetime.today()
+ if self.date_end is None: delta = now - self.date_start
+ elif now > self.date_end: delta = Timedelta()
+ else: delta = self.date_end - now
+ return self.__format(delta)
+
+def run_chronometre(timeout=None, autostart=False):
+ from Tkinter import Tk, Toplevel, Frame, Label, Entry, Button
+ import tkMessageBox
+
+ class Dialog(Toplevel):
+ def __init__(self, parent, title=None):
+ self.result = None
+ self.have_result = False
+
+ Toplevel.__init__(self, parent)
+ self.transient(parent)
+ if title: self.title(title)
+ self.parent = parent
+
+ body = Frame(self)
+ self.initial_focus = self.body(body)
+ body.pack(padx=5, pady=5)
+ self.buttonbox()
+ self.grab_set()
+ if not self.initial_focus: self.initial_focus = self
+ self.protocol("WM_DELETE_WINDOW", self.cancel)
+ self.geometry("+%d+%d" % (parent.winfo_rootx()+50,
+ parent.winfo_rooty()+50))
+ self.initial_focus.focus_set()
+ self.wait_window(self)
+
+ def set_result(self, result):
+ self.result = result
+ self.have_result = True
+
+ def body(self, master):
+ pass
+
+ def buttonbox(self):
+ box = Frame(self)
+ w = Button(box, text="OK", width=10, command=self.ok, default='active')
+ w.pack(side='left', padx=5, pady=5)
+ w = Button(box, text="Annuler", width=10, command=self.cancel)
+ w.pack(side='left', padx=5, pady=5)
+ self.bind("", self.ok)
+ self.bind("", self.cancel)
+ box.pack()
+
+ def ok(self, event=None):
+ if not self.validate():
+ self.initial_focus.focus_set()
+ return
+ self.withdraw()
+ self.update_idletasks()
+ self.apply()
+ self.cancel()
+
+ def cancel(self, event=None):
+ self.parent.focus_set()
+ self.destroy()
+
+ def validate(self):
+ return True
+
+ def apply(self):
+ pass
+
+ class Config(Dialog):
+ def body(self, master):
+ Label(master, text="Nb minutes", padx=20).grid(row=0)
+ self.entry = Entry(master)
+ self.entry.grid(row=0, column=1)
+ return self.entry
+
+ def apply(self):
+ value = self.entry.get()
+ if value == "": result = None
+ else: result = value
+ self.set_result(result)
+
+ class Application(Frame):
+ root = None
+ chrono = None
+ stop = None
+
+ def __init__(self, timeout=None, autostart=False, **kw):
+ self.chrono = Chrono(timeout)
+ self.stop = False
+
+ root = Tk()
+ root.title("Chronomètre")
+ root.columnconfigure(0, weight=1)
+ root.rowconfigure(0, weight=1)
+ root.bind("c", lambda event: self.do_config())
+ root.bind("s", lambda event: self.do_start())
+ root.bind("q", lambda event: self.quit())
+ self.root = root
+
+ kw.update(master=root)
+ Frame.__init__(self, **kw)
+
+ self.TIME = Label(self, width=10, height=2, text=self.chrono.initial, padx=30, pady=10, font=('Helvetica', 18, "normal"))
+ self.START = Button(self, text="Démarrer", command=self.do_start)
+ self.CONFIG = Button(self, text="Config", command=self.do_config)
+ self.QUIT = Button(self, text="Quitter", command=self.quit)
+
+ self.grid(column=0, row=0, sticky='nsew')
+ self.TIME.grid(column=0, row=0, columnspan=3, sticky='nsew')
+ self.START.grid(column=0, row=1, sticky='ew')
+ self.CONFIG.grid(column=1, row=1, sticky='ew')
+ self.QUIT.grid(column=2, row=1, sticky='ew')
+
+ self.columnconfigure(0, weight=2)
+ self.columnconfigure(1, weight=1)
+ self.columnconfigure(2, weight=2)
+ self.rowconfigure(0, weight=1)
+
+ if autostart: self.do_start()
+
+ def update_time(self):
+ chrono = self.chrono
+ self.TIME.configure(text=chrono)
+ if chrono.is_started():
+ if chrono.is_end():
+ playSound(DEFAULT_SOUND)
+ else:
+ self.root.after(300, self.update_time)
+
+ def do_start(self):
+ self.chrono.start()
+ self.update_time()
+
+ def do_config(self):
+ chrono = self.chrono
+ chrono.stop()
+ config = Config(self.root)
+ if config.have_result:
+ try:
+ chrono.set_timeout(config.result)
+ self.TIME.configure(text=chrono.initial)
+ except:
+ traceback.print_exc()
+ tkMessageBox.showerror("Valeur invalide", sys.exc_info()[1])
+
+ Application(timeout, autostart).mainloop()
+
+if __name__ == '__main__':
+ from argparse import ArgumentParser, RawTextHelpFormatter
+ AP = ArgumentParser(
+ formatter_class=RawTextHelpFormatter,
+ usage=u"%(prog)s [options] [TIMEOUT]",
+ description=u"Afficher un chronomètre",
+ epilog=u"Si TIMEOUT est spécifié, par défaut le décompte démarre automatiquement."
+ )
+ AP.set_defaults(autostart=None, timeout=None)
+ AP.add_argument('timeout', metavar='TIMEOUT', nargs='?',
+ help=u"""\
+(valeur vide)
+ chronomètre qui démarre à 0:00 et ne s'arrête pas
+H:M:S (heures:minutes:secondes)
+ou M:S (minutes:secondes)
+ou M (minutes)
+ minuteur qui démarre à H:M:S et fait un décompte jusqu'à 0:00. A la fin
+ du décompte, une sonnerie retentit.
+@H[:M[:S]]
+ minuteur qui fonctionne comme précédemment, sauf qu'on spécifie l'heure
+ d'arrivée, et que la durée est calculée automatiquement""")
+ AP.add_argument('-n', '--no-autostart', dest='autostart', action='store_false',
+ help=u"Ne pas démarrer automatiquement le décompte même si TIMEOUT est spécifié.")
+ AP.add_argument('-s', '--autostart', dest='autostart', action='store_true',
+ help=u"Forcer le démarrage automatique du décompte, même si TIMEOUT n'est pas spécifié.")
+ o = AP.parse_args()
+
+ autostart = o.autostart
+ if autostart is None: autostart = o.timeout is not None
+ o.autostart = autostart
+
+ timeout = o.timeout
+ if timeout is None: timeout = DEFAULT_TIMEOUT
+ elif timeout == '': timeout = None
+ o.timeout = timeout
+
+ run_chronometre(o.timeout, o.autostart)
diff --git a/doc/DefaultTiddlers.twp b/doc/DefaultTiddlers.twp
deleted file mode 100644
index cac184d..0000000
--- a/doc/DefaultTiddlers.twp
+++ /dev/null
@@ -1,25 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-# Pense-bête:
-# ''bold'' ==striked== __underline__ //italic// ^^super^^ ~~sub~~
-# @@highlight@@ @@color:red;background-color:white; rouge sur noir@@
-# ~NotAWikiWord [[force wikiword]] [[friendly name|WikiWord]]
-# [[external|http://site.com]] ---- {{monospace}}
-# !h1 !!h2 !!!h3 !!!!h4 !!!!!h5
-# * dotlist ** sublist # numlist ## sublist
-# {{{ |caption|c [img[title|filename]]
-# pre text |!header|!header|h [img[filename]]
-# }}} |cell|cell| [img[title|filename][link]]
-# <<< |>|colspan| [img[filename][link]]
-# blockquote |rowspan|one| [img[filename]]
-# >quote1 |left| right|
-# >>quote2 |>| center |
-# >>>quote3
-##@creator: jclain
-##@created: 09/03/2012 05:08
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: DefaultTiddlers
-
-[[Main]]
diff --git a/doc/EnsureVM.twp b/doc/EnsureVM.twp
deleted file mode 100644
index cda2f7d..0000000
--- a/doc/EnsureVM.twp
+++ /dev/null
@@ -1,16 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 15/03/2012 22:19
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: EnsureVM
-
-{{{
-EnsureVM: s'assurer que les services sont lancés pour un type de virtualisation
-
-USAGE
- EnsureVM type
-
-Les types supportés sont virtualbox et kvm (par défaut)
-}}}
diff --git a/doc/Main.twp b/doc/Main.twp
deleted file mode 100644
index 470bda7..0000000
--- a/doc/Main.twp
+++ /dev/null
@@ -1,46 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-# Pense-bête:
-# ''bold'' ==striked== __underline__ //italic// ^^super^^ ~~sub~~
-# @@highlight@@ @@color:red;background-color:white; rouge sur noir@@
-# ~NotAWikiWord [[force wikiword]] [[friendly name|WikiWord]]
-# [[external|http://site.com]] ---- {{monospace}}
-# !h1 !!h2 !!!h3 !!!!h4 !!!!!h5
-# * dotlist ** sublist # numlist ## sublist
-# {{{ |caption|c [img[title|filename]]
-# pre text |!header|!header|h [img[filename]]
-# }}} |cell|cell| [img[title|filename][link]]
-# <<< |>|colspan| [img[filename][link]]
-# blockquote |rowspan|one| [img[filename]]
-# >quote1 |left| right|
-# >>quote2 |>| center |
-# >>>quote3
-##@creator: jclain
-##@created: 09/03/2012 05:08
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: Main
-
-!Présentation
-nutools est un ensemble d'utilitaires pour faciliter l'utililisation des Unixes, en particulier Linux, mais aussi MacOS X et Cygwin.
-C'est aussi une librairie de scripts shell réutilisables ([[ulib]]) et une librairie de modules python réutilisables (pyulib)
-
-!Prérequis
-Python >= 2.3 et GNU Awk sont requis pour que toutes les fonctionnalités soient supportées.
-* Sous Linux, lors de l'installation du package, les meilleurs efforts sont fait pour que ces packages soient installés.
-* Sous MacOSX, il faut installer manuellement Fink, DarwinPorts ou Homebrew
-
-! Outils
-Chaque outil contient une aide intégrée. Il suffit de lancer l'outil avec l'argument {{{--help}}} pour avoir une aide détaillée.
-* Déploiement d'un répertoire ou d'une archive
-** [[uinst]]: Déploiement local
-** [[mkusfx]]: Faire une archive auto-installable avec uinst
-** [[ruinst]]: Déploiement distant avec uinst
-** [[runs]]: Lancer un script avec le protocole RUNS
-** [[rruns]]: Déploiement distant avec runs
-* Librairie réutilisable de scripts shell
-** [[uinc]]: Dépliage des inclusions dans un fichier
-** [[ulibsync]]: Faire une copie locale pour un projet de ulib et/ou pyulib
-* Autres outils
-** [[udir]]: Gestion des paramètres d'un répertoire. Ces paramètres sont entre autres utilisés par uinst et uinc.
diff --git a/doc/MainMenu.twp b/doc/MainMenu.twp
deleted file mode 100644
index 935032c..0000000
--- a/doc/MainMenu.twp
+++ /dev/null
@@ -1,25 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-# Pense-bête:
-# ''bold'' ==striked== __underline__ //italic// ^^super^^ ~~sub~~
-# @@highlight@@ @@color:red;background-color:white; rouge sur noir@@
-# ~NotAWikiWord [[force wikiword]] [[friendly name|WikiWord]]
-# [[external|http://site.com]] ---- {{monospace}}
-# !h1 !!h2 !!!h3 !!!!h4 !!!!!h5
-# * dotlist ** sublist # numlist ## sublist
-# {{{ |caption|c [img[title|filename]]
-# pre text |!header|!header|h [img[filename]]
-# }}} |cell|cell| [img[title|filename][link]]
-# <<< |>|colspan| [img[filename][link]]
-# blockquote |rowspan|one| [img[filename]]
-# >quote1 |left| right|
-# >>quote2 |>| center |
-# >>>quote3
-##@creator: jclain
-##@created: 09/03/2012 05:08
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: MainMenu
-
-[[GettingStarted]]
diff --git a/doc/SKvm.twp b/doc/SKvm.twp
deleted file mode 100644
index 8d66b66..0000000
--- a/doc/SKvm.twp
+++ /dev/null
@@ -1,40 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:19
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: SKvm
-
-{{{
-SKvm: lancer une machine virtuelle kvm
-
-USAGE
- SKvm [options] vmName
- SKvm {-l|-A|-g}
-
-OPTIONS
- -n, --check
- Ne rien faire excepté s'assurer que les modules kvm sont chargés
- -u, --user
- Lancer l'opération avec les droits de l'utilisateur courant. Par défaut,
- ce script tente d'acquérir les droits de root.
- -l, --list
- Lister les machines virtuelles
- -s, --start
- Démarrer la machine virtuelle (par défaut)
- Si le nom de la machine virtuelle n'est pas spécifiée, un menu est
- affiché
- -k, --stop
- Arrêter la machine virtuelle
- -H, --destroy
- Arrêter sauvagement la machine virtuelle
- -r, --restart
- Redémarrer la machine virtuelle
- -S, --managed-save
- Enregistrer l'état de la machine virtuelle
- -A, --stop-all
- Arrêter toutes les machines virtuelles qui tournent actuellement
- -g, --gui
- Afficher le gestionnaire de machines virtuelle
-}}}
diff --git a/doc/SVirtualBox.twp b/doc/SVirtualBox.twp
deleted file mode 100644
index b07371d..0000000
--- a/doc/SVirtualBox.twp
+++ /dev/null
@@ -1,29 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:19
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: SVirtualBox
-
-{{{
-SVirtualBox: lancer une machine virtuelle VirtualBox
-
-USAGE
- SVirtualBox [options] vmName
-
-OPTIONS
- -n Ne rien faire excepté s'assurer que les modules VirtualBox sont chargés
- -l Lister les machines virtuelles
- -s Démarrer la machine virtuelle (par défaut)
- Si le nom de la machine virtuelle n'est pas spécifiée, un menu est
- affiché
- -b Démarrer la VM sans interface graphique. Cette option n'est valide
- qu'avec -s
- -k Arrêter la machine virtuelle (par ACPI)
- -p Mettre en veille la machine virtuelle (par ACPI)
- -H Arrêter sauvagement la machine virtuelle
- -R Redémarrer sauvagement la machine virtuelle
- -S Enregistrer l'état de la machine virtuelle
- -g Afficher le gestionnaire de machines virtuelle
-}}}
diff --git a/doc/SiteSubtitle.twp b/doc/SiteSubtitle.twp
deleted file mode 100644
index 54da2b3..0000000
--- a/doc/SiteSubtitle.twp
+++ /dev/null
@@ -1,25 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-# Pense-bête:
-# ''bold'' ==striked== __underline__ //italic// ^^super^^ ~~sub~~
-# @@highlight@@ @@color:red;background-color:white; rouge sur noir@@
-# ~NotAWikiWord [[force wikiword]] [[friendly name|WikiWord]]
-# [[external|http://site.com]] ---- {{monospace}}
-# !h1 !!h2 !!!h3 !!!!h4 !!!!!h5
-# * dotlist ** sublist # numlist ## sublist
-# {{{ |caption|c [img[title|filename]]
-# pre text |!header|!header|h [img[filename]]
-# }}} |cell|cell| [img[title|filename][link]]
-# <<< |>|colspan| [img[filename][link]]
-# blockquote |rowspan|one| [img[filename]]
-# >quote1 |left| right|
-# >>quote2 |>| center |
-# >>>quote3
-##@creator: jclain
-##@created: 09/03/2012 05:08
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: SiteSubtitle
-
-Outils divers pour linux/macosx, et librairies pour bash
diff --git a/doc/SiteTitle.twp b/doc/SiteTitle.twp
deleted file mode 100644
index ed1c759..0000000
--- a/doc/SiteTitle.twp
+++ /dev/null
@@ -1,25 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-# Pense-bête:
-# ''bold'' ==striked== __underline__ //italic// ^^super^^ ~~sub~~
-# @@highlight@@ @@color:red;background-color:white; rouge sur noir@@
-# ~NotAWikiWord [[force wikiword]] [[friendly name|WikiWord]]
-# [[external|http://site.com]] ---- {{monospace}}
-# !h1 !!h2 !!!h3 !!!!h4 !!!!!h5
-# * dotlist ** sublist # numlist ## sublist
-# {{{ |caption|c [img[title|filename]]
-# pre text |!header|!header|h [img[filename]]
-# }}} |cell|cell| [img[title|filename][link]]
-# <<< |>|colspan| [img[filename][link]]
-# blockquote |rowspan|one| [img[filename]]
-# >quote1 |left| right|
-# >>quote2 |>| center |
-# >>>quote3
-##@creator: jclain
-##@created: 09/03/2012 05:08
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: SiteTitle
-
-nutools
diff --git a/doc/SiteUrl.twp b/doc/SiteUrl.twp
deleted file mode 100644
index bef6314..0000000
--- a/doc/SiteUrl.twp
+++ /dev/null
@@ -1,25 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-# Pense-bête:
-# ''bold'' ==striked== __underline__ //italic// ^^super^^ ~~sub~~
-# @@highlight@@ @@color:red;background-color:white; rouge sur noir@@
-# ~NotAWikiWord [[force wikiword]] [[friendly name|WikiWord]]
-# [[external|http://site.com]] ---- {{monospace}}
-# !h1 !!h2 !!!h3 !!!!h4 !!!!!h5
-# * dotlist ** sublist # numlist ## sublist
-# {{{ |caption|c [img[title|filename]]
-# pre text |!header|!header|h [img[filename]]
-# }}} |cell|cell| [img[title|filename][link]]
-# <<< |>|colspan| [img[filename][link]]
-# blockquote |rowspan|one| [img[filename]]
-# >quote1 |left| right|
-# >>quote2 |>| center |
-# >>>quote3
-##@creator: jclain
-##@created: 09/03/2012 05:08
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: SiteUrl
-
-
diff --git a/doc/_root.twp b/doc/_root.twp
deleted file mode 100644
index 8d9dad4..0000000
--- a/doc/_root.twp
+++ /dev/null
@@ -1,12 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 15/03/2012 22:20
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: _root
-
-{{{
-_root: devenir l'utilisateur root, avec 'sudo' si possible, ou 'su' si
-'sudo' n'est pas installé
-}}}
diff --git a/doc/apacheconfig.twp b/doc/apacheconfig.twp
deleted file mode 100644
index e5f2c89..0000000
--- a/doc/apacheconfig.twp
+++ /dev/null
@@ -1,69 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:18
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: apacheconfig
-
-{{{
-apacheconfig: Gérer la configuration d'un serveur web apache
-
-USAGE
- apacheconfig -c
- apacheconfig -t -- args...
-
-OPTIONS
- -c, --create
- Créer un nouveau répertoire de configuration pour un hôte
- -d, --destdir DESTDIR[=apacheconfig]
- Nom du répertoire local de configuration.
-
- -t, --template [OPT]
- Gérer les fichiers du répertoire local avec templatectl. La valeur de
- cette option est utilisée comme argument court pour l'invocation de
- templatectl, e.g
- apacheconfig -tm args
- est équivalent à
- templatectl -m args
- Les arguments qui restent sont passés tels quels à templatectl
- Les options courantes de templatectl -l, -v, -m, -L sont disponibles
- directement
- --help-template
- Afficher l'aide concernent la gestion des templates.
- Equivalent à -t -- --help
- -h, --host HOST
- Spécifier l'hôte. Equivalent à -v host=HOST
- --sysname SYSNAME
- --sysdist SYSDIST
- -s, --sysver SYSVER
- Spécifier la distribution pour laquelle synchroniser le template. Par
- défaut, choisir les valeurs correspondantes au système courant.
- Les options -7 et -8 sont des aliases respectivement pour -s wheezy et
- -s jessie, parce que les fichiers par défaut ont changé à partir de
- debian jessie.
-
- -u, --update, --deploy
- Mettre à jour la configuration système à partir du répertoire local.
- Lors du déploiement de la configuration, les valeurs des variables
- dynamiques sont remplacées dans les fichiers destination.
- Les arguments qui restent sont passés tels quels à apache_autoconf
- -r, --certsdir CERTSDIR
- Spécifier le cas échéant le répertoire contenant les certificats à
- déployer. Cet argument est requis si le répertoire certsconf/ existe.
-
- --localhosts
- Créer dans le fichier /etc/hosts tous les noms d'hôte ayant un suffixe
- .local mentionnés dans les fichiers de site. Cette option est utile pour
- le développement et les tests.
- -C, --one-conf CONF
- Ne déployer que le fichier de configuration spécifié. Cette option est
- utilisée avec --deploy et est utile pour le développement et les tests.
- -M, --one-module MODULE
- Ne déployer que le fichier de module spécifié. Cette option est utilisée
- avec --deploy et est utile pour le développement et les tests.
- -S, --one-site SITE
- Ne déployer que le fichier de site spécifié. Cette option est utilisée
- avec --deploy ou --localhosts et est utile pour le développement et les
- tests.
-}}}
diff --git a/doc/authftp.twp b/doc/authftp.twp
deleted file mode 100644
index f132efe..0000000
--- a/doc/authftp.twp
+++ /dev/null
@@ -1,39 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:18
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: authftp
-
-{{{
-authftp: Se connecter sur un site FTP authentifié
-Ce script nécessite ncftp. Il est conçu pour faciliter l'accès à des sites FTP
-s'il est requis d'y accéder par un proxy FTP pour les connexion authentifiées.
-
-USAGE
- authftp [options] host login password [path]
-
-OPTIONS
- -p, --proxy
- -n, --noproxy
- Forcer l'utilisation, resp. ne pas utiliser, le proxy FTP (i.e. faire la
- connexion directement)
- -l, --lftp
- Se connecter avec lftp au lieu de ncftp. Le fonctionnement n'est pas
- garanti si l'on utilise un proxy FTP.
- -o OPTION
- Ajouter une option à la commande lancée. Si l'option prend un argument,
- il faut doubler l'option -o, e.g.
- authftp -l -o -e -o 'mirror remote local' host login pass
- Dans cet exemple, l'option -e de lftp est utilisée pour faire un miroir
- local du répertoire remote.
- --tls
- Indiquer que la connexion se fera en TLS. Implique --lftp puisque ncftp
- ne le supporte pas.
-
-note: A cause d'une limitation de lftp, ce n'est pas possible de se connecter
-automatiquement avec lftp si le mot de passe contient une virgule. A cause de la
-façon dont le proxy ftp est configuré, il n'est pas possible de se connecter
-avec un mot de passe qui contient le caractère @
-}}}
diff --git a/doc/caturl.twp b/doc/caturl.twp
deleted file mode 100644
index 9d677f2..0000000
--- a/doc/caturl.twp
+++ /dev/null
@@ -1,20 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 13/05/2016 09:36
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: caturl
-
-{{{
-caturl: Afficher une url
-
-USAGE
- caturl
-
-OPTIONS
- -c, --check
- Vérifier que le fichier est valide
- -g, --get
- Attaquer l'url spécifiée avec curl
-}}}
diff --git a/doc/compileAndGo.twp b/doc/compileAndGo.twp
deleted file mode 100644
index 0a401cf..0000000
--- a/doc/compileAndGo.twp
+++ /dev/null
@@ -1,11 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 15/03/2012 22:19
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: compileAndGo
-
-{{{
-compileAndGo: see http://Yost.com/computers/compileAndGo
-}}}
diff --git a/doc/cssh.twp b/doc/cssh.twp
deleted file mode 100644
index 228e26e..0000000
--- a/doc/cssh.twp
+++ /dev/null
@@ -1,18 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:18
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: cssh
-
-{{{
-cssh: Faire une connexion ssh en lançant automatiquement un screen sur l'hôte distant
-
-USAGE
- cssh [user@]host [options]
-
-En principe, hormis l'argument user@host, il ne faudrait spécifier que des
-options. Dans le cas où d'autres arguments seraient spécifiés, les meilleurs
-efforts sont faits pour lancer ces commandes avant screen.
-}}}
diff --git a/doc/doinplace.twp b/doc/doinplace.twp
deleted file mode 100644
index 6d291d5..0000000
--- a/doc/doinplace.twp
+++ /dev/null
@@ -1,35 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:18
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: doinplace
-
-{{{
-doinplace: filtrer en place un fichier à travers une suite de commandes
-
-USAGE
- doinplace FILE COMMAND [ARGS...]
-
-Si on utilise une commande avec des options, penser à utliser '--' pour séparer
-les options de ce script des options de la commande
-
-En plus des commandes systèmes, il est possible d'utiliser toute fonction de
-nutools qui effectue des traitement sur un flux comme stripnl, filter_empty,
-merge_contlines, filter_comment, filter_conf, etc. Les fonctions nl2lf, nl2crlf,
-nl2cr, latin1compat et noaccents sont aussi disponibles par convenance.
-
-OPTIONS
- -p, --evalp
- Evaluer la commande avec evalp(), ce qui permet de chainer plusieurs
- commandes en les séparant par //. Cette option est automatiquement
- activée si ce script est lancé avec le nom doinplacex
- -g, --ignore-error, --replace-always
- Normalement, le fichier n'est pas remplacé si la commande retourne une
- erreur. Avec cette option, le fichier est remplacé quel que soit le code
- de retour de la commande. A utiliser par exemple avec des commandes
- comme grep qui peuvent retourner FAUX s'ils ne trouvent pas le motif.
- Cette option est automatiquement activée si ce script est lancé avec le
- nom doinplacef
-}}}
diff --git a/doc/dumpclients.twp b/doc/dumpclients.twp
deleted file mode 100644
index 6983b14..0000000
--- a/doc/dumpclients.twp
+++ /dev/null
@@ -1,30 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:18
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: dumpclients
-
-{{{
-dumpclients: afficher les connexions TCP entrantes sur un port
-
-USAGE
- dumpclients [options] port
-
-OPTIONS
- -4, --only-tcp
- -6, --only-tcp6
- Se limiter au protocole spécifié. Par défaut, afficher toutes les
- connexions, qu'elles soient en IPv4 ou en IPv6
- -a, --all
- Afficher tous les sockets, y compris les ports d'écoute. Par défaut,
- seules les sockets ouvertes sont affichées.
- -n, --numeric
- Afficher uniquement les adresses IP au lieu du nom d'hôte.
- -z, --allow-no-port
- Ne pas exiger que le port soit spécifié
- --show none,ip,port,state
- Spécifier d'afficher comme informations supplémentaire: rien, l'adresse
- ip, le port et/ou l'état. Par défaut, afficher le port et l'état.
-}}}
diff --git a/doc/em.twp b/doc/em.twp
deleted file mode 100644
index e405ebf..0000000
--- a/doc/em.twp
+++ /dev/null
@@ -1,95 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:18
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: em
-
-{{{
-Usage: /usr/bin/emacs [OPTION-OR-FILENAME]...
-
-Run Emacs, the extensible, customizable, self-documenting real-time
-display editor. The recommended way to start Emacs for normal editing
-is with no options at all.
-
-Run M-x info RET m emacs RET m emacs invocation RET inside Emacs to
-read the main documentation for these command-line arguments.
-
-Initialization options:
-
---batch do not do interactive display; implies -q
---daemon start a server in the background
---debug-init enable Emacs Lisp debugger for init file
---display, -d DISPLAY use X server DISPLAY
---no-desktop do not load a saved desktop
---no-init-file, -q load neither ~/.emacs nor default.el
---no-shared-memory, -nl do not use shared memory
---no-site-file do not load site-start.el
---no-splash do not display a splash screen on startup
---no-window-system, -nw do not communicate with X, ignoring $DISPLAY
---quick, -Q equivalent to -q --no-site-file --no-splash
---script FILE run FILE as an Emacs Lisp script
---terminal, -t DEVICE use DEVICE for terminal I/O
---user, -u USER load ~USER/.emacs instead of your own
-
-Action options:
-
-FILE visit FILE using find-file
-+LINE go to line LINE in next FILE
-+LINE:COLUMN go to line LINE, column COLUMN, in next FILE
---directory, -L DIR add DIR to variable load-path
---eval EXPR evaluate Emacs Lisp expression EXPR
---execute EXPR evaluate Emacs Lisp expression EXPR
---file FILE visit FILE using find-file
---find-file FILE visit FILE using find-file
---funcall, -f FUNC call Emacs Lisp function FUNC with no arguments
---insert FILE insert contents of FILE into current buffer
---kill exit without asking for confirmation
---load, -l FILE load Emacs Lisp FILE using the load function
---visit FILE visit FILE using find-file
-
-Display options:
-
---background-color, -bg COLOR window background color
---basic-display, -D disable many display features;
- used for debugging Emacs
---border-color, -bd COLOR main border color
---border-width, -bw WIDTH width of main border
---color, --color=MODE override color mode for character terminals;
- MODE defaults to `auto', and can also
- be `never', `auto', `always',
- or a mode name like `ansi8'
---cursor-color, -cr COLOR color of the Emacs cursor indicating point
---font, -fn FONT default font; must be fixed-width
---foreground-color, -fg COLOR window foreground color
---fullheight, -fh make the first frame high as the screen
---fullscreen, -fs make first frame fullscreen
---fullwidth, -fw make the first frame wide as the screen
---maximized, -mm make the first frame maximized
---geometry, -g GEOMETRY window geometry
---no-bitmap-icon, -nbi do not use picture of gnu for Emacs icon
---iconic start Emacs in iconified state
---internal-border, -ib WIDTH width between text and main border
---line-spacing, -lsp PIXELS additional space to put between lines
---mouse-color, -ms COLOR mouse cursor color in Emacs window
---name NAME title for initial Emacs frame
---no-blinking-cursor, -nbc disable blinking cursor
---reverse-video, -r, -rv switch foreground and background
---title, -T TITLE title for initial Emacs frame
---vertical-scroll-bars, -vb enable vertical scroll bars
---xrm XRESOURCES set additional X resources
---parent-id XID set parent window
---help display this help and exit
---version output version information and exit
-
-You can generally also specify long option names with a single -; for
-example, -batch as well as --batch. You can use any unambiguous
-abbreviation for a --option.
-
-Various environment variables and window system resources also affect
-Emacs' operation. See the main documentation.
-
-Report bugs to bug-gnu-emacs@gnu.org. First, please see the Bugs
-section of the Emacs manual or the file BUGS.
-}}}
diff --git a/doc/fconv.twp b/doc/fconv.twp
deleted file mode 100644
index 5306686..0000000
--- a/doc/fconv.twp
+++ /dev/null
@@ -1,64 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:18
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: fconv
-
-{{{
-fconv: convertir un fichier ou les fichiers d'un répertoire
-
-USAGE
- fconv -f FILE [cmds...]
- fconv FILE [cmds...]
-
-Une ou plusieurs commandes peuvent être spécifiées, séparées par //
-La commande par défaut est 'lf'
-Si des commandes utilisant des options sont utilisées, penser à séparer les
-options de fconv avec --
-
-OPTIONS
- -N, --detect-always
- Pour la commande conv, ne pas optimiser le calcul de l'encoding. Cette
- option n'est valide que si src_enc n'est pas spécifié. On assume que
- tous les fichiers n'ont pas le même encoding: l'encoding src_enc est
- donc recalculé à chaque fois.
- -r, --reverse
- Pour la commande conv, inverser src_enc et dest_enc, qui doivent être
- tous les deux spécifiés.
- -f, --file FILE
- Spécifier le fichier ou le répertoire concerné par la conversion. Les
- aliases -d et --dir sont aussi reconnus.
- Si cette option n'est pas spécifiée, le premier argument est considéré
- comme le nom du fichier ou du répertoire à convertir. Par défaut,
- convertir l'entrée standard.
- Si un répertoire est spécifié, tous les fichiers de ce répertoire et de
- ses sous-répertoires sont recherchés de façon récursive, sans limite de
- profondeur. Ensuite, chacun de ces fichiers est converti.
- --show-cmd
- Afficher la commande qui serait exécutée
-
-COMMANDES
- c, conv dest_enc [src_enc]
- Convertir le fichier dans un autre encoding.
- dest_enc est l'encoding destination. Il doit être spécifié.
- src_enc est l'encoding source. S'il n'est pas spécifié ou vaut 'detect',
- il est autodétecté.
- U, utf8 [src_enc]
- Equivalent à conv utf8 src_enc
- L, latin1 [src_enc]
- Equivalent à conv latin1 src_enc
- lf
- crlf
- cr
- Convertir respectivement les caractères de fin de ligne en LF, CR/LF ou CR
- lc, latin1compat
- Transformer certains caratères UTF-8 en équivalents qui existent en Latin1
- na, noaccents
- Transformer les caractères accentués en caractères non accentués
- sort [-u]
- Trier le fichier avec la commande sort. Attention! Il ne faut utiliser
- que les options de sort qui agissent sur un flux e.g. -u pour trier les
- lignes de façon unique.
-}}}
diff --git a/doc/fnconv.twp b/doc/fnconv.twp
deleted file mode 100644
index 7337bce..0000000
--- a/doc/fnconv.twp
+++ /dev/null
@@ -1,58 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:18
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: fnconv
-
-{{{
-fnconv: renommer un fichier ou les fichiers d'un répertoire
-
-USAGE
- fnconv -f FILE [cmds...]
- fnconv FILE [cmds...]
-
-Une ou plusieurs commandes peuvent être spécifiées, séparées //
-La commande par défaut est 'fixcase'
-
-OPTIONS
- -N, --detect-always
- Pour la commande conv, ne pas optimiser le calcul de l'encoding. Cette
- option n'est valide que si src_enc n'est pas spécifié. On assume que
- tous les fichiers n'ont pas le même encoding: l'encoding src_enc est
- donc recalculé à chaque fois.
- -r, --reverse
- Pour la commande conv, inverser src_enc et dest_enc, qui doivent être
- tous les deux spécifiés.
- -f, --file FILE
- Spécifier le fichier ou le répertoire concerné par le renommage. Les
- aliases -d et --dir sont aussi reconnus.
- Si cette option n'est pas spécifiée, le premier argument est considéré
- comme le nom du fichier ou du répertoire à renommer.
- Si un répertoire est spécifié, le traitement est appliqué à tous les
- fichiers et répertoires de façon récursive, sans limite de profondeur.
- --show-cmd
- Afficher la commande qui serait exécutée
-
-COMMANDES
- C, conv dest_enc [src_enc]
- Convertir le nom du fichier dans un autre encoding.
- dest_enc est l'encoding destination. Il doit être spécifié.
- src_enc est l'encoding source. S'il n'est pas spécifié ou vaut 'detect',
- il est autodétecté.
- U, utf8 [src_enc]
- Equivalent à conv utf8 src_enc
- L, latin1 [src_enc]
- Equivalent à conv latin1 src_enc
- lc, latin1compat
- Transformer certains caratères UTF-8 en équivalents qui existent en Latin1
- na, noaccents
- Transformer les caractères accentués en caractères non accentués
- l, lowercase
- Transfomer le nom en minuscule
- u, uppercase
- Transformer le nom en majuscule
- f, fixcase
- Transformer le nom en minuscule s'il est entièrement en majuscule
-}}}
diff --git a/doc/geturl.twp b/doc/geturl.twp
deleted file mode 100644
index 1ec3d76..0000000
--- a/doc/geturl.twp
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 15/03/2012 22:19
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: geturl
-
-{{{
-geturl: Télécharger un fichier avec wget ou curl
-
-USAGE
- geturl [wget options]
-}}}
diff --git a/doc/index.md b/doc/index.md
index 374a8f1..2762f05 100644
--- a/doc/index.md
+++ b/doc/index.md
@@ -20,16 +20,16 @@ Chaque outil contient une aide intégrée. Il suffit de lancer l'outil avec
l'argument `--help` pour avoir une aide détaillée.
* Déploiement d'un répertoire ou d'une archive
- * [uinst](): Déploiement local
- * [mkusfx](): Faire une archive auto-installable avec uinst
- * [ruinst](): Déploiement distant avec uinst
- * [runs](): Lancer un script avec le protocole RUNS
- * [rruns](): Déploiement distant avec runs
+ * [uinst](tools/uinst): Déploiement local
+ * [mkusfx](tools/mkusfx): Faire une archive auto-installable avec uinst
+ * [ruinst](tools/ruinst): Déploiement distant avec uinst
+ * [runs](tools/runs): Lancer un script avec le protocole RUNS
+ * [rruns](tools/rruns): Déploiement distant avec runs
* Librairie réutilisable de scripts shell
- * [uinc](): Dépliage des inclusions dans un fichier
- * [ulibsync](): Faire une copie locale pour un projet de ulib et/ou pyulib
+ * [uinc](tools/uinc): Dépliage des inclusions dans un fichier
+ * [ulibsync](tools/ulibsync): Faire une copie locale pour un projet de ulib et/ou pyulib
* Autres outils
- * [udir](): Gestion des paramètres d'un répertoire. Ces paramètres sont entre
- autres utilisés par uinst et uinc.
+ * [udir](tools/udir): Gestion des paramètres d'un répertoire. Ces paramètres sont entre
+ autres utilisés par uinst et uinc.
-*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary
\ No newline at end of file
diff --git a/doc/mkRewriteRules.twp b/doc/mkRewriteRules.twp
deleted file mode 100644
index 2b1c35c..0000000
--- a/doc/mkRewriteRules.twp
+++ /dev/null
@@ -1,86 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 15/03/2012 22:19
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: mkRewriteRules
-
-{{{
-mkRewriteRules: Créer un fichier de redirections pour Apache à partir d'un certain
-nombre de règles
-
-USAGE
- mkRewriteRules -f rewrite.rules [-o RewriteRules.conf] [-w RewriteRules.html] host
-
-OPTIONS
- -p Générer les directives et tenir compte de proxy_acls
- Par défaut, le champ proxy_acls est ignoré
-
-FORMAT des règles de mapping
-============================
-
-Les commentaires commencent par le signe "#"
-Les règles sont de la forme:
- src:dest:host:suffix:OPTS:prot:proxy_acls
- ^prefix
- =literal
-
-prot vaut par défaut http. Il peut valoir aussi https
-
-Si dest ou suffix se terminent par $, on est en mode NO_SLASH
-En mode NO_SLASH, si src se termine par $, on est en mode NO_TRAIL
-
-* Si dest est de la forme Application.woa
-En mode NO_SLASH, on génère
- RewriteRule ^/src(.*) [prot://host]/cgi-bin/WebObjects/dest[/suffix]$1 [L,OPTS]
-En mode NO_SLASH+NO_TRAIL, on génère
- RewriteRule ^/src [prot://host]/cgi-bin/WebObjects/dest[/suffix] [L,OPTS]
-En mode normal, on génère
- RewriteRule ^/src$ /src/
- RewriteRule ^/src/(.*) [prot://host]/cgi-bin/WebObjects/dest[/suffix]/$1 [L,OPTS]
-
-* Si dest n'est pas de la forme Application.woa
-En mode NO_SLASH, on génère
- RewriteRule ^/src(.*) [prot://host]/dest[/suffix]$1 [L,OPTS]
-En mode NO_SLASH+NO_TRAIL, on génère
- RewriteRule ^/src [prot://host]/dest[/suffix] [L,OPTS]
-En mode normal, on génère
- RewriteRule ^/src$ /src/
- RewriteRule ^/src/(.*) /dest[/suffix]/$1 [L,OPTS]
-
-Si une règle est précédée d'une ou plusieurs lignes de la forme "^prefix",
-ces lignes sont copiées avant chacune des commandes RewriteRule générées
-pour une règle. Ceci permet d'ajouter des conditions avec RewriteCond pour
-une règle. e.g.
- ^RewriteCond %{REMOTE_ADDR} 10\..*
- src:dest.woa
-qui génère:
- RewriteCond %{REMOTE_ADDR} 10\..*
- RewriteRule ^/src$ /src/
- RewriteCond %{REMOTE_ADDR} 10\..*
- RewriteRule ^/src/(.*) /cgi-bin/WebObjects/dest.woa/$1 [L]
-
-Une ligne de la forme "=literal" est recopiée sans modifications (sans le "=")
-dans le fichier de sortie.
-
-proxy_acls est utilisé si l'option -p est spécifiée et OPTS contient P (comme
-proxy), ou si le mode de réécriture requière l'utilisation d'un proxy.
-
-* Avec la valeur "None", aucune directive n'est générée
-* Si aucune valeur n'est spécifiée, la directive suivante est générée:
-
- AddDefaultCharset off
- Order Deny,Allow
- Allow from all
-
-* Si une valeur est spécifiée, la directive suivante est générée:
-
- AddDefaultCharset off
- Order Allow,Deny
- Allow from $proxy_acls
-
-
-Dans les exemples donnés ci-dessus, $URL est l'url générée par la réécriture,
-et $proxy_acls la valeur du champ proxy_acls spécifiée ci-dessus.
-}}}
diff --git a/doc/mkiso.twp b/doc/mkiso.twp
deleted file mode 100644
index a42ac0c..0000000
--- a/doc/mkiso.twp
+++ /dev/null
@@ -1,25 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:18
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: mkiso
-
-{{{
-mkiso: créer une image iso d'un répertoire
-
-USAGE
- mkiso [options] srcdir [dest.iso]
-
-OPTIONS
- -M, --hfs
- créer une image hybride ISO/HFS
- -V, --volume
- Nom du volume. Par défaut, prendre le nom de base du répertoire
- d'origine. La taille est de 32 caractères max.
- -A, --application
- Description de l'application qui est sur l'image créée. Par défaut,
- prendre le nom de base du répertoire d'origine. La taille est de 128
- caractères max.
-}}}
diff --git a/doc/mkurl.twp b/doc/mkurl.twp
deleted file mode 100644
index 660d3a3..0000000
--- a/doc/mkurl.twp
+++ /dev/null
@@ -1,20 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 15/03/2012 22:20
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: mkurl
-
-{{{
-mkurl: Enregistrer une url dans un fichier raccourci
-
-USAGE
- mkurl [output]
-
-OPTIONS
-Par défaut, l'url est enregistrée dans un fichier homepage.url
-Mais il est possible de spécifier un fichier avec l'extension .url pour un
-raccourci utilisable aussi sous Windows, ou avec l'extension .desktop pour
-compatibilité avec le standard XDG
-}}}
diff --git a/doc/mkusfx.twp b/doc/mkusfx.twp
deleted file mode 100644
index 6da2c22..0000000
--- a/doc/mkusfx.twp
+++ /dev/null
@@ -1,35 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 15/03/2012 22:20
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: mkusfx
-
-{{{
-mkusfx: Créer une archive auto-extractible qui installe son contenu avec uinst
-
-USAGE
- mkusfx [options] [--bare] src cmd...
- mkusfx [options] [--uinst] src
-
-OPTIONS
- --bare
- Installer le contenu de l'archive en lançant la commande 'cmd...' avec
- le répertoire courant étant le contenu de l'archive. Typiquement, ce
- sera une commande de forme './script', où script est un fichier situé à
- la racine de l'archive
- Dans ce mode d'installation, l'option --self-contained est ignorée.
- --uinst
- Installer le contenu de l'archive avec uinst (par défaut)
- -o dest
- Spécifier le fichier de sortie. Par défaut, il s'agit de
- ${src}-installer.run
- --tmp-archive
- Spécifier qu'il s'agit d'une archive temporaire. Cette archive
- s'auto-détruit après utilisation.
- --self-contained
- Spécifier que l'archive doit pouvoir s'installer même sur un système sur
- lequel nutools n'est pas installé. Cette archive contiendra une copie
- locale de ulib et uinst.sh
-}}}
diff --git a/doc/mocifs.twp b/doc/mocifs.twp
deleted file mode 100644
index 7cea103..0000000
--- a/doc/mocifs.twp
+++ /dev/null
@@ -1,30 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:18
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: mocifs
-
-{{{
-mocifs: Monter un partage Windows/Samba/CIFS
-
-USAGE
- mocifs [user@]host[/path] [mountpoint]
-
-Par défaut, le répertoire distant est montée sur un répertoire avec le même nom
-de base que l'hôte. Si le répertoire distant est déjà monté, il est démonté.
-Les options -M et -U permettent de modifier le comportement par défaut.
-
-OPTIONS
- -M
- Forcer le montage
- -U
- Forcer le démontage
- -o OPTIONS
- Ajouter les options spécifiées à la commande de montage mount.cifs
- -u USERNAME
- -p PASSWORD
- -c USERNAME:PASSWORD
- Spécifier les credentials à utiliser pour la connexion
-}}}
diff --git a/doc/modav.twp b/doc/modav.twp
deleted file mode 100644
index 13556bc..0000000
--- a/doc/modav.twp
+++ /dev/null
@@ -1,44 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:18
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: modav
-
-{{{
-modav: Monter un répertoire sur un hôte distant avec davfs
-
-USAGE
- modav http[s]://host[/path] [mountpoint]
-
-Par défaut, le répertoire distant est montée sur un répertoire avec le même nom
-de base que l'hôte. Si le répertoire distant est déjà monté, il est démonté.
-Les options -M et -U permettent de modifier le comportement par défaut.
-
-OPTIONS
- -M
- Forcer le montage
- -U
- Forcer le démontage
- -o OPTIONS
- Ajouter les options spécifiées à la commande de montage
- -u USERNAME
- -p PASSWORD
- -c USERNAME:PASSWORD
- Si les credentials à utiliser ne sont pas configuré dans le fichier
- /etc/davfs2/secrets, cette option permet de les spécifier. Si cette
- option est utilisée, il est possible de rajouter
- ask_auth 0
- dans le fichier /etc/davfs2/davfs2.conf pour éviter le conflit qui se
- produit quand des informations sont demandées interactivement. C'est le
- cas par exemple si une connexion en https est faite et que la chaine de
- certification n'est pas configurée. Pour mémoire, cela se fait avec
- servercert myCAs.pem
- dans le fichier /etc/davfs2/davfs2.conf
- Bien entendu, il est préférable de configurer les credentials dans le
- fichier /etc/davfs2/secrets avec la syntaxe
- url username password
- ou
- mountpoint username password
-}}}
diff --git a/doc/moiso.twp b/doc/moiso.twp
deleted file mode 100644
index e8ec2be..0000000
--- a/doc/moiso.twp
+++ /dev/null
@@ -1,24 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:18
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: moiso
-
-{{{
-moiso: Monter une image ISO
-
-USAGE
- moiso image.iso [mountpoint]
-
-Par défaut, l'image iso est montée sur un répertoire avec le même nom de base.
-Si l'image est déjà montée, elle est démontée. Les options -m et -u permettent
-de modifier le comportement par défaut.
-
-OPTIONS
- -m
- Forcer le montage
- -u
- Forcer le démontage
-}}}
diff --git a/doc/mossh.twp b/doc/mossh.twp
deleted file mode 100644
index 0a64a06..0000000
--- a/doc/mossh.twp
+++ /dev/null
@@ -1,33 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:18
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: mossh
-
-{{{
-mossh: Monter un répertoire sur un hôte distant avec sshfs
-
-USAGE
- mossh [user@]host[:/path] [mountpoint]
-
-Par défaut, le répertoire distant est montée sur un répertoire avec le même nom
-de base que l'hôte. Si le répertoire distant est déjà monté, il est démonté.
-Les options -M et -U permettent de modifier le comportement par défaut.
-
-OPTIONS
- -M
- Forcer le montage
- -U
- Forcer le démontage
- -o OPTIONS
- Ajouter les options spécifiées à la commande de montage
- -s
- Equivalent à -o allow_other ou -o allow_root selon que l'on est root ou
- non
- -u USER
- Spécifier le user pour la connexion distante, s'il n'est pas possible de
- le spécifier dans l'url. En cas de conflit, la valeur dans l'url est
- prioritaire par rapport à cette option.
-}}}
diff --git a/doc/mysqlcsv.twp b/doc/mysqlcsv.twp
deleted file mode 100644
index 24590c0..0000000
--- a/doc/mysqlcsv.twp
+++ /dev/null
@@ -1,69 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:18
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: mysqlcsv
-
-{{{
-mysqlcsv: Faire une requête MySQL et formater la sortie pour traitement avec awkcsv
-
-USAGE
- mysqlcsv [query [db]] [-- mysql options]
-
-query est la requête sql à exécuter. Si query n'est pas spécifiée, la(les)
- requête(s) sql sont prises sur l'entrée standard, ou depuis un fichier
- si l'option -f est spécifiée.
-db est le nom de la base de données. Cette argument n'est lu que si le nom
- de la base de donnée n'est ni spécifié dans le fichier de configuration,
- ni spécifié avec l'option -D
-
-OPTIONS
- -h, --host HOST
- -P, --port PORT
- -u, --user USER
- -pPASSWORD
- -D, --database DATABASE
- Informations de connexion à la base de données
- -C, --config CONFIG
- Prendre les informations de connexion depuis le fichier spécifié.
- Le fichier doit être de la forme
- host=HOST
- #post=3306
- user=USER
- password=PASS
- #database=DB
- #query=QUERY
- Les variables port, database et query sont facultatives.
- Les valeurs définies dans ce fichier sont prioritaires par rapport à
- celles qui auraient été spécifiées sur la ligne de commande.
- Utiliser password=--NOT-SET-- s'il faut se connecter sans mot de passe
- Cette option peut être utilisée plusieurs fois, auquel cas les fichiers
- sont chargés dans l'ordre.
- --profile PROFILE
- La variable $PROFILE est définie avec la valeur spécifiée avant de
- sourcer les fichiers de configuration. Cela permet d'avoir des fichiers
- de configuration qui calculent dynamiquement les paramètres en fonction
- de la valeur du profil.
- -N, --no-headers
- Ne pas afficher les en-têtes
- -c, --force
- Continuer le traitement même en cas d'erreur
- -r, --raw
- Ne pas autoriser mysql à mettre en échappement certaines valeurs
- retournées par le serveur. Par défaut, les transformations suivantes
- sont effectuées:
- newline --> \n
- tab --> \t
- nul --> \0
- \ --> \\
- -n, --nulls
- Transformer dans le flux en sortie les valeurs NULL en chaines vides
- -f, --input INPUT
- Lire la requête depuis le fichier input au lieu de le lire depuis la
- ligne de commande ou l'entrée standard. Ne pas spécifier cette option
- ou utiliser '-' pour lire depuis l'entrée standard.
- Cette option est ignorée si la requête est spécifiée parmi les
- arguments.
-}}}
diff --git a/doc/mysqlloadcsv.twp b/doc/mysqlloadcsv.twp
deleted file mode 100644
index d07938f..0000000
--- a/doc/mysqlloadcsv.twp
+++ /dev/null
@@ -1,112 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:18
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: mysqlloadcsv
-
-{{{
-mysqlloadcsv: Charger une table MySQL avec un fichier csv
-
-USAGE
- mysqlloadcsv [db.]table [fields...] [-- mysql options]
-
-db est le nom de la base de données
-table est le nom de la table à charger
-fields est la liste des colonnes. Si cette valeur est spécifiée, il faudra
- peut-être utiliser l'option -s pour ignorer le cas échéant la ligne des
- en-têtes dans le fichier en entrée. Sinon, les colonnes à utiliser sont
- calculées à partir du fichier en entrée.
-
-Dans les données en entrées, qui doivent être en UTF8, les conversions suivantes
-sont effectuées par MySQL:
-
- \0 -->
- \b -->
- \n -->
- \r -->
- \t -->
- \Z --> Ctrl+Z
- \N --> NULL
-
-OPTIONS
- -h, --host host
- -P, --port port
- -u, --user user
- -ppassword
- Informations de connexion à la base de données
- -C, --config CONFIG
- Prendre les informations de connexion depuis le fichier spécifié.
- Le fichier doit être de la forme
- host=HOST.TLD
- #post=3306
- user=USER
- password=PASS
- #dbtable=DB.TABLE
- #fields=(FIELDS...)
- # Il est possible aussi de spécifier DB et TABLE séparément:
- #database=DB
- #table=TABLE
- Les variables port, dbtable et fields sont facultatives.
- Les valeurs définies dans ce fichier sont prioritaires par rapport à
- celles qui auraient été spécifiées sur la ligne de commande.
- Utiliser password=--NOT-SET-- s'il faut se connecter sans mot de passe
- Cette option peut être utilisée plusieurs fois, auquel cas les fichiers
- sont chargés dans l'ordre.
- --profile PROFILE
- La variable $PROFILE est définie avec la valeur spécifiée avant de
- sourcer les fichiers de configuration. Cela permet d'avoir des fichiers
- de configuration qui calculent dynamiquement les paramètres en fonction
- de la valeur du profil.
- -f, --input INPUT
- Fichier en entrée. Ne pas spécifier cette option ou utiliser '-' pour
- lire depuis l'entrée standard.
- -d, --auto-dbtable DB
- Spécifier la base de données avec laquelle se connecter. De plus, si le
- nom de la table n'est pas spécifié, prendre par défaut le nom de base du
- fichier spécifié avec l'option -f
- -s, --skip-lines NBLINES
- Nombre de lignes à sauter dans le fichier en entrée
- -n, --fake
- Ne pas effectuer l'opération. Afficher simplement la commande SQL.
- --run
- Forcer le lancement de l'opération. Utiliser cette option avec -A pour
- créer la table avec les paramètres analysés.
- -T, --truncate
- Vider la table avant d'effectuer le chargement
- -L, --load-data
- Charger les données avec la commande 'load data local'. C'est l'option
- par défaut. Le fichier est transmis tel quel à MySQL.
- -I, --insert-data
- Charger les données en générant des commandes 'insert into'. L'effet est
- en principe le même avec l'option -L (sauf que certains formats de date
- exotiques seront correctement importés). Cette option peut aussi être
- utilisée avec l'option -n pour générer une liste de commande à corriger
- et/ou adapter.
- -U, -k, --update-data KEY
- Au lieu de charger de nouvelles données, essayer de mettre à jour la
- table. KEY est le nom de la colonne qui est utilisée comme clé. Toutes
- les autres colonnes sont les nouvelles données à mettre à jour. Si
- aucune ligne ne correspond à une clé donnée, la mise à jour pour cette
- ligne est ignorée.
- Note: utiliser les options -T et -U ensemble n'a pas de sens, mais -T
- est quand même honoré.
- -Z, --null-value VALUE
- Avec les options -I et -U, considérer que NULL est représenté par la
- chaine spécifiée. Par défaut, utiliser \N
- -z, --null-is-empty
- Avec les options -I et -U, considérer que NULL est représenté par la
- chaine vide. Cette option est équivalente à -Z ''
- -t, --types [DEFAULT_TYPE,]FIELD:TYPE,...
- Spécifier pour chaque champ mentionné le type de donnée à forcer. Le
- type 'auto' signifie que le type est autodétecté. C'est la valeur par
- défaut. Les autres types valides sont 'str', 'int' et 'date'
- Cette option est ignorée avec l'option -L
- -A, --analyse
- Analyser les données et afficher une requête pour créer une table qui
- pourrait contenir ces données.
- Cette option implique --fake et affiche simplement la commande SQL.
- Pour lancer la commande SQL générée, il faut ajouter l'option --run
- APRES cette option
-}}}
diff --git a/doc/noerr.twp b/doc/noerr.twp
deleted file mode 100644
index ca9e012..0000000
--- a/doc/noerr.twp
+++ /dev/null
@@ -1,11 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:18
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: noerr
-
-{{{
-noerr: lancer une commande en supprimant la sortie d'erreur
-}}}
diff --git a/doc/noerror.twp b/doc/noerror.twp
deleted file mode 100644
index 08abded..0000000
--- a/doc/noerror.twp
+++ /dev/null
@@ -1,11 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:18
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: noerror
-
-{{{
-noerror: lancer une commande en masquant son code de retour. le code de retour est toujours 0
-}}}
diff --git a/doc/noout.twp b/doc/noout.twp
deleted file mode 100644
index cc2b854..0000000
--- a/doc/noout.twp
+++ /dev/null
@@ -1,11 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:18
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: noout
-
-{{{
-noout: lancer une commande en supprimant la sortie standard
-}}}
diff --git a/doc/nutools.twp b/doc/nutools.twp
deleted file mode 100644
index f0accb6..0000000
--- a/doc/nutools.twp
+++ /dev/null
@@ -1,38 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:18
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: nutools
-
-{{{
-nutools: configurer ou afficher des informations sur nutools
-
-USAGE
- nutools [VERSION]
-
-OPTIONS
- -C, --configure
- Faire la configuration pour l'utilisateur courant en appelant uenv -u
- Avec cette option, l'option -l (ou --local-profiles) est aussi reconnue
- et est passée directement à uenv
- -v, --version
- Afficher la version de nutools installée. C'est l'option par défaut
- -c, --check
- Calculer si la version installée correspond à la version spécifiée
- -o, --oper OPERATOR
- Spécifier l'opérateur à utiliser avec l'option --check (par défaut,
- utiliser l'opérateur ge, qui permet de vérifier si la version minimum
- spécifiée est installée)
- --eq
- --ne
- --lt
- --le
- --gt
- --ge
- --same
- --diff
- Ces options sont des raccourcis. L'option '--OP' est équivalente à
- '--check --op OP'
-}}}
diff --git a/doc/openurl.twp b/doc/openurl.twp
deleted file mode 100644
index ec66ae0..0000000
--- a/doc/openurl.twp
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 15/03/2012 22:20
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: openurl
-
-{{{
-openurl: Ouvrir une URL dans un navigateur
-
-USAGE
- openurl
-}}}
diff --git a/doc/pdev.twp b/doc/pdev.twp
deleted file mode 100644
index 5ad1858..0000000
--- a/doc/pdev.twp
+++ /dev/null
@@ -1,90 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:18
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: pdev
-
-{{{
-pdev: basculer sur une branche de développement
-
-USAGE
- pdev [FEATURE [SOURCE]]
- pdev -m|-l|-d [FEATURE]
-
-- Vérifier l'existence de la branche develop. La créer si nécessaire en la
- basant sur [origin/]master.
-- Vérifier s'il n'y a pas de modifications locales. Sinon, proposer de faire un
- commit ou un stash.
-- Si FEATURE est spécifié, et si on n'est pas déjà sur cette branche, basculer
- vers cette nouvelle branche. S'il s'agit d'une nouvelle branche, la baser sur
- la branche SOURCE, qui vaut par défaut develop
-- Si FEATURE n'est pas spécifié, basculer sur develop s'il s'agit de la seule
- solution, sinon afficher un menu pour choisir la branche de destination.
-
-OPTIONS
- -C, --projdir PROJDIR
- Spécifier le répertoire de base du projet qui est dans git. Par défaut,
- on travaille dans le répertoire courant et on laisse git trouver le
- répertoire de base du projet. Avec cette option, le répertoire courant
- est modifié avant de lancer les commandes git.
- -O, --origin ORIGIN
- Spécifier le nom de l'origine. Par défaut, utiliser 'origin'
- -o, --offline
- En cas de création d'une branche, ne pas pousser vers l'origine; ne pas
- tenter le cas échéant de traquer la branche dans l'origine; ne pas
- supprimer une branche dans l'origine. Cette option est automatiquement
- activée si la variable UTOOLS_VCS_OFFLINE est définie.
- --online
- Annuler l'effet de la variable UTOOLS_VCS_OFFLINE: forcer le mode online
- --sync
- Faire un certain nombre d'opération pour 'corriger' le dépôt local: pour
- chacune des branches distantes, vérifier qu'il existe une branche locale
- qui la traque, et pour chaque feature branche locale, vérifier qu'il
- existe une branche distante associée. Cette option nécessite --online
-
- -s, --squash COMMIT_MSG
- Si la branche actuelle est une feature branch, la merger comme un seul
- commit avec le message COMMIT_MSG dans develop puis la supprimer. Puis
- basculer sur la branche develop.
- Cette option ne devrait pas être utilisée avec -k, puisque bien que les
- modifications soient mergées, la branche elle-même n'est pas considérée
- comme mergée. Les résultats sont donc indéfinis si la branche est mergée
- à plusieurs reprises.
- -b, --rebase
- Si la branche actuelle est une feature branch, lancer 'git rebase -i'
- sur la feature branch. Cela permet de réordonner les commits pour
- nettoyer l'historique avant de fusionner la branche avec -m
- Cette option devrait le cas échéant être utilisée immédiatement avant -m
- ou alors il faut forcer le push et communiquer avec l'équipe sur le fait
- que la branche de feature a été rebasée.
- -m, --merge
- Si la branche actuelle est une feature branch, la merger dans develop
- puis la supprimer. Puis basculer sur la branche develop.
- --merge-log
- Ajouter un résumé des modifications sur la feature branch en ajoutant le
- log en une ligne de chaque commit dans le message du merge. Cette option
- n'est en principe pas nécessaire puisque 'prel -um' intègre la liste des
- commits dans CHANGES.txt
- -k, --keep
- Avec l'option -m, ne pas supprimer une feature branch après l'avoir
- fusionnée dans develop. Cela permet d'intégrer les modifications petit à
- petit.
- --delete
- Supprimer une feature branch, à condition qu'elle aie déjà été
- entièrement fusionnée dans la branch develop
- --force-delete
- Supprimer une feature branch, même si elle n'a pas encore été fusionnée
- dans la branche develop
-
- -l, --log
- -d, --diff
- Afficher les modifications entre deux branches. L'option --log affiche
- les modifications dans l'ordre alors que --diff affiche les différences
- sous forme de diff. Les deux options peuvent être combinées et ont
- l'effet de 'git log -p'
- La branche comparée, s'il elle n'est pas spécifiée, est par défaut la
- branche courante. S'il s'agit d'une feature branch, elle est comparée à
- develop. S'il s'agit de la branche develop, elle est comparée à master.
-}}}
diff --git a/doc/prel.twp b/doc/prel.twp
deleted file mode 100644
index eb0f4cf..0000000
--- a/doc/prel.twp
+++ /dev/null
@@ -1,105 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:18
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: prel
-
-{{{
-prel: basculer sur une branche de release
-
-USAGE
- prel -u [SOURCE]
- prel -c [RELEASE [SOURCE]]
- prel -m|-l|-d [RELEASE]
-
-- Vérifier s'il n'y a pas de modifications locales. Sinon, proposer de faire un
- commit ou un stash.
-- Avec l'option -c, s'il existe une branche de release, proposer de basculer
- vers elle ou sur la branche master. Sinon, basculer sur la branche master.
-- Avec l'option -u, proposer ou fixer une branche de release à créer. Si elle
- existe déjà, basculer vers elle. Sinon, la créer en la basant sur SOURCE, qui
- vaut par défaut develop
-
-OPTIONS
- -C, --projdir PROJDIR
- Spécifier le répertoire de base du projet qui est dans git. Par défaut,
- on travaille dans le répertoire courant et on laisse git trouver le
- répertoire de base du projet. Avec cette option, le répertoire courant
- est modifié avant de lancer les commandes git.
- -O, --origin ORIGIN
- Spécifier le nom de l'origine. Par défaut, utiliser 'origin'
- -o, --offline
- En cas de création d'une branche, ne pas pousser vers l'origine; ne pas
- tenter le cas échéant de traquer la branche dans l'origine; ne pas
- supprimer une branche dans l'origine. Cette option est automatiquement
- activée si la variable UTOOLS_VCS_OFFLINE est définie.
- --online
- Annuler l'effet de la variable UTOOLS_VCS_OFFLINE: forcer le mode online
-
- -c, --checkout
- Basculer vers une branche de release existante. C'est l'option par
- défaut. Si aucune branche de release n'existe, basculer vers master
- -u, --update
- Préparer une nouvelle release. Utiliser une des options -x, -z ou -p
- pour spécifier le type de release à préparer. Si la branche qui serait
- créée pour le type de release existe déjà, basculer vers cette branche.
- S'il faut la créer, la baser sur la branche SOURCE, qui vaut par défaut
- develop
- --menu
- -x, --major
- -z, --minor
- -p, --patchlevel
- Utilisé avec l'option -u, soit afficher un menu pour choisir la version
- de la nouvelle release (par défaut), soit préparer respectivement une
- release majeure, mineure, ou pour correction de bug.
- -v-OPT
- Avec l'option -u, spécifier une option de pver permettant de choisir la
- version de la nouvelle release. Les options supportées sont -v, -l, -a,
- -b, -r et -R. Par exemple, si la version actuelle sur la branche master
- est 0.2.3, les options '-uz -v-lbeta' permettent de préparer la release
- 0.3.0-beta
- En principe, cette option n'a pas à être utilisée, puisque dans une
- branche de release, on peut faire vivre les versions de pré-release
- jusqu'à la release finale. Ainsi, la branche de release est nommée
- d'après la version finale, mais le projet peut recevoir une version de
- pré-release incrémentale.
- -w, --write
- Si une nouvelle branche est créée avec -u, mettre à jour le fichier
- VERSION.txt avec pver. C'est l'option par défaut.
- -n, --no-write
- Si une nouvelle branche est créée avec -u, NE PAS mettre à jour le
- fichier VERSION.txt avec pver. Utiliser cette option si la mise à jour
- du numéro de version doit être faite d'une manière particulière.
- -e, --edit
- Editer le fichier CHANGES.txt autogénéré par -u -w
- Cette option est surtout utile si -m est utilisé avec -u, pour donner la
- possibilité de corriger la liste des modifications avant leur
- enregistrement définitif.
-
- -m, --merge
- Si la branche actuelle est une branche de release, ou s'il existe une
- branche de release, la merger dans master, puis dans develop, puis la
- supprimer. Puis basculer sur la branche master.
- S'il n'existe pas de branche de release, proposer de fusionner les
- modifications de la branche develop dans la branche master, sans
- préparer de branche de release au préalable.
- --delete
- Supprimer une branche de release, à condition qu'elle aie déjà été
- entièrement fusionnée dans la branch master
- --force-delete
- Supprimer une branche de release, même si elle n'a pas encore été
- fusionnée dans la branche master
-
- -s, --summary
- Afficher la liste des différences entre la branche develop et la branche
- master, comme elle serait générée par les options -u -w pour le fichier
- CHANGES.txt
- -l, --log
- Afficher les modifications actuellement effectuée dans la branche de
- release par rapport à develop.
- -d, --diff
- Afficher les modifications actuellement effectuée dans la branche de
- release par rapport à develop, sous forme de diff.
-}}}
diff --git a/doc/pver.md b/doc/pver.md
deleted file mode 100644
index b87a431..0000000
--- a/doc/pver.md
+++ /dev/null
@@ -1,98 +0,0 @@
-# pver
-
-~~~
-pver: gérer des numéros de version selon les règles du versionage sémantique v2.0.0 (http://semver.org/)
-
-USAGE
- pver [options]
-
-OPTIONS
- -f, --file VERSIONFILE
- Gérer le numéro de version se trouvant dans le fichier spécifié. Le
- fichier est créé si nécessaire. C'est l'option par défaut si un fichier
- nommé VERSION.txt se trouve dans le répertoire courant.
- -e, --maven POMFILE
- Gérer le numéro de version se trouvant dans le fichier pom.xml spécifié.
- Le fichier DOIT exister. C'est l'option par défaut si un fichier nommé
- pom.xml se trouve dans le répertoire courant.
- -F, --file-string VERSIONFILE
- Prendre pour valeur de départ le contenu du fichier VERSIONFILE (qui
- vaut par défaut VERSION.txt)
- -g, --git-string [branch:]VERSIONFILE
- Prendre pour valeur de départ le contenu du fichier VERSIONFILE (qui
- vaut par défaut VERSION.txt) dans la branche BRANCH (qui vaut par défaut
- master) du dépôt git situé dans le répertoire courant.
- -s, --string VERSION
- Prendre pour valeur de départ le numéro de version spécifié
-
- --show
- Afficher le numéro de version. C'est l'action par défaut
- --allow-empty
- Supporter que la version puisse ne pas être spécifiée ni trouvée. Dans
- ce cas, ne pas assumer que la version effective est 0.0.0
- Avec --show et --update, ne rien afficher si la version est vide.
- --check
- Vérifier que le numéro de version est conforme aux règles du versionage
- sémantique
- --convert
- --no-convert
- Activer (resp. désactiver) la conversion automatique. Par défaut, si la
- version est au format classique 'x.z[.p]-rDD/MM/YYYY', elle est
- convertie automatiquement au format sémantique x.z.p+rYYYYMMDD
- --eq VERSION
- --ne VERSION
- --lt VERSION
- --le VERSION
- --gt VERSION
- --ge VERSION
- --same VERSION
- --diff VERSION
- Comparer avec la version spécifiée. Les opérateurs --eq, --ne, --lt,
- --le, --gt, et --ge ignorent l'identifiant de build (comme le demande la
- règle du versionage sémantique). Les opérateurs --same et --diff
- comparent aussi les identifiants de build.
- -v, --set-version VERSION
- Spécifier un nouveau numéro de version qui écrase la valeur actuelle.
- Cette option ne devrait pas être utilisée en temps normal parce que cela
- va contre les règles du versionage sémantique.
- --prel
- Spécifier un nouveau numéro de version qui écrase la valeur actuelle. Le
- numéro de version est obtenu à partir du nom de la branche git courante,
- qui doit être de la forme release-VERSION
- -u, --update
- Mettre à jour le numéro de version.
-
- --menu
- Afficher un menu permettant de choisir le composant de la version à
- incrémenter
- -x, --major
- Augmenter le numéro de version majeure
- -z, --minor
- Augmenter le numéro de version mineure. C'est la valeur par défaut.
- -p, --patchlevel
- Augmenter le numéro de patch
-
- -l, --prelease ID
- Spécifier un identifiant de pré-release, à ajouter au numéro de version.
- -a, --alpha
- -b, --beta
- -r, --rc
- Spécifier une pré-release de type alpha, beta, ou rc. Si la version est
- déjà dans ce type, augmenter la dernière valeur numérique des composants
- de l'identifiant, e.g. alpha deviant alpha.1, beta-1.2 devient beta-1.3,
- rc1 devient rc2
- XXX ces fonctions ne sont pas encore implémentées
- -R, --final, --release
- Supprimer l'identifiant de prérelease
-
- -m, --metadata ID
- Spécifier un identifiant de build, à ajouter au numéro de version.
- -M, --vcs-metadata
- Spécifier l'identifiant à partir de la révision actuelle dans le
- gestionnaire de version. Note: pour le moment, seul git est supporté.
- --add-metadata ID
- Ajouter l'identifiant spécifié à la valeur actuelle, au lieu de la
- remplacer. Séparer l'identifiant de la valeur précédente avec un '.'
-~~~
-
--*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary
\ No newline at end of file
diff --git a/doc/pver.twp b/doc/pver.twp
deleted file mode 100644
index 243b6b1..0000000
--- a/doc/pver.twp
+++ /dev/null
@@ -1,102 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:18
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: pver
-
-{{{
-pver: gérer des numéros de version selon les règles du versionage sémantique v2.0.0 (http://semver.org/)
-
-USAGE
- pver [options]
-
-OPTIONS
- -f, --file VERSIONFILE
- Gérer le numéro de version se trouvant dans le fichier spécifié. Le
- fichier est créé si nécessaire. C'est l'option par défaut si un fichier
- nommé VERSION.txt se trouve dans le répertoire courant.
- -e, --maven POMFILE
- Gérer le numéro de version se trouvant dans le fichier pom.xml spécifié.
- Le fichier DOIT exister. C'est l'option par défaut si un fichier nommé
- pom.xml se trouve dans le répertoire courant.
- -F, --file-string VERSIONFILE
- Prendre pour valeur de départ le contenu du fichier VERSIONFILE (qui
- vaut par défaut VERSION.txt)
- -g, --git-string [branch:]VERSIONFILE
- Prendre pour valeur de départ le contenu du fichier VERSIONFILE (qui
- vaut par défaut VERSION.txt) dans la branche BRANCH (qui vaut par défaut
- master) du dépôt git situé dans le répertoire courant.
- -s, --string VERSION
- Prendre pour valeur de départ le numéro de version spécifié
-
- --show
- Afficher le numéro de version. C'est l'action par défaut
- --allow-empty
- Supporter que la version puisse ne pas être spécifiée ni trouvée. Dans
- ce cas, ne pas assumer que la version effective est 0.0.0
- Avec --show et --update, ne rien afficher si la version est vide.
- --check
- Vérifier que le numéro de version est conforme aux règles du versionage
- sémantique
- --convert
- --no-convert
- Activer (resp. désactiver) la conversion automatique. Par défaut, si la
- version est au format classique 'x.z[.p]-rDD/MM/YYYY', elle est
- convertie automatiquement au format sémantique x.z.p+rYYYYMMDD
- --eq VERSION
- --ne VERSION
- --lt VERSION
- --le VERSION
- --gt VERSION
- --ge VERSION
- --same VERSION
- --diff VERSION
- Comparer avec la version spécifiée. Les opérateurs --eq, --ne, --lt,
- --le, --gt, et --ge ignorent l'identifiant de build (comme le demande la
- règle du versionage sémantique). Les opérateurs --same et --diff
- comparent aussi les identifiants de build.
- -v, --set-version VERSION
- Spécifier un nouveau numéro de version qui écrase la valeur actuelle.
- Cette option ne devrait pas être utilisée en temps normal parce que cela
- va contre les règles du versionage sémantique.
- --prel
- Spécifier un nouveau numéro de version qui écrase la valeur actuelle. Le
- numéro de version est obtenu à partir du nom de la branche git courante,
- qui doit être de la forme release-VERSION
- -u, --update
- Mettre à jour le numéro de version.
-
- --menu
- Afficher un menu permettant de choisir le composant de la version à
- incrémenter
- -x, --major
- Augmenter le numéro de version majeure
- -z, --minor
- Augmenter le numéro de version mineure. C'est la valeur par défaut.
- -p, --patchlevel
- Augmenter le numéro de patch
-
- -l, --prelease ID
- Spécifier un identifiant de pré-release, à ajouter au numéro de version.
- -a, --alpha
- -b, --beta
- -r, --rc
- Spécifier une pré-release de type alpha, beta, ou rc. Si la version est
- déjà dans ce type, augmenter la dernière valeur numérique des composants
- de l'identifiant, e.g. alpha deviant alpha.1, beta-1.2 devient beta-1.3,
- rc1 devient rc2
- XXX ces fonctions ne sont pas encore implémentées
- -R, --final, --release
- Supprimer l'identifiant de prérelease
-
- -m, --metadata ID
- Spécifier un identifiant de build, à ajouter au numéro de version.
- -M, --vcs-metadata
- Spécifier l'identifiant à partir de la révision actuelle dans le
- gestionnaire de version. Note: pour le moment, seul git est supporté.
- --add-metadata ID
- Ajouter l'identifiant spécifié à la valeur actuelle, au lieu de la
- remplacer. Séparer l'identifiant de la valeur précédente avec un '.'
-}}}
diff --git a/doc/pz.twp b/doc/pz.twp
deleted file mode 100644
index a49c742..0000000
--- a/doc/pz.twp
+++ /dev/null
@@ -1,24 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:18
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: pz
-
-{{{
-pz: faire une archive du projet
-
-USAGE
- pz
-
-OPTIONS
- -C, --projdir PROJDIR
- Spécifier le répertoire de base du projet qui est dans git. Par défaut,
- on travaille dans le répertoire courant et on laisse git trouver le
- répertoire de base du projet. Avec cette option, le répertoire courant
- est modifié avant de lancer les commandes git.
- -d, --destdir DESTDIR
- Spécifier le répertoire dans lequel générer l'archive. Par défaut,
- prendre le répertoire parent du répertoire de base du dépôt.
-}}}
diff --git a/doc/reptyr.cgo.twp b/doc/reptyr.cgo.twp
deleted file mode 100644
index f1b3003..0000000
--- a/doc/reptyr.cgo.twp
+++ /dev/null
@@ -1,20 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:18
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: reptyr.cgo
-
-{{{
-Usage: reptyr [-s] PID
- reptyr -l|-L [COMMAND [ARGS]]
- -l Create a new pty pair and print the name of the slave.
- if there are command-line arguments after -l
- they are executed with REPTYR_PTY set to path of pty.
- -L Like '-l', but also redirect the child's stdio to the slave.
- -s Attach fds 0-2 on the target, even if it is not attached to a tty.
- -h Print this help message and exit.
- -v Print the version number and exit.
- -V Print verbose debug output.
-}}}
diff --git a/doc/rmtildes.twp b/doc/rmtildes.twp
deleted file mode 100644
index b9d56a5..0000000
--- a/doc/rmtildes.twp
+++ /dev/null
@@ -1,16 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 15/03/2012 22:20
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: rmtildes
-
-{{{
-rmtildes: supprimer les fichiers *~ dans le répertoire courant
-
-USAGE
- rmtildes [dir [glob]]
-
-Par défaut, dir==. et glob==*~
-}}}
diff --git a/doc/rruns.twp b/doc/rruns.twp
deleted file mode 100644
index a492593..0000000
--- a/doc/rruns.twp
+++ /dev/null
@@ -1,78 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:18
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: rruns
-
-{{{
-rruns: Déploiement distant avec runs
-
-USAGE
- rruns [-h hosts] [-T tmproot] rscriptname name=value...
- rruns [-h hosts] [-T tmproot] @recipe name=value...
- rruns [-h hosts] [-T tmproot] -f rscript name=value...
- rruns [-h hosts] [-T tmproot] -r recipe name=value...
-
-Lancer ce script sans argument (hors options) est équivalent à le lancer avec
-l'argument @default
-
-OPTIONS
- -C Ne pas faire le déploiement. Configurer uniquement la connexion par clé
- sur les hôtes distants spécifiés pour le user spécifié. Il faut pouvoir
- se connecter par mot de passe pour configurer la connexion par clé.
- Si l'on veut configurer la connexion par clé pour le user root, mais que
- ce n'est pas possible de se connecter par mot de passe avec le user root
- sur l'hôte distant, et qu'il existe un user sudoer sur l'hôte distant,
- il est possible de faire la configuration avec '--configure root'. La
- commande serait alors
- rruns -h user@host --configure root
- -T tmproot
- Spécifier le répertoire temporaire sur l'hôte distant, comme par exemple
- /var/tmp. Cette option est utile pour les vservers, qui ont par défaut
- un /tmp minuscule de 16 Mo.
- -S ssh
- Spécifier le programme à utiliser pour la connection par ssh.
- -h host
- -h @hostsfile
- Spécifier un ou plusieurs hôtes sur lequels faire le déploiement. Pour
- spécifier plusieurs hôtes, il est possible d'utiliser plusieurs fois
- l'option -h, ou spécifier en une seule fois plusieurs hôtes en les
- séparant par un espace ou le caractère ':', e.g. 'host1 host2' ou
- 'host1:host2'. Si la spécification contient les caractères { et },
- l'expansion est effectuée, e.g
- -h 'root@{host1,host2}.univ.run'
- Par défaut, la connexion sur l'hôte distant se fait avec l'utilisateur
- root. Il est possible de spécifier un autre utilisateur avec la syntaxe
- user@host, e.g -h user@host
- La forme @hostsfile permet de lire la liste des hôtes depuis le fichier
- hostsfile, à raison d'un hôte par ligne.
- Si cette option n'est pas spécifiée, et que le répertoire courant est
- dans un des répertoires de $RUNSHOSTSPATH, sélectionner l'hôte
- correspondant. Sinon, l'utilisateur doit saisir l'hôte distant de façon
- interactive.
- -f RSCRIPT
- Lancer le script individuel spécifié au lieu de chercher dans les
- répertoires $RUNS{SCRIPTS,HOSTS}PATH
- -r RECIPE
- Lancer les scripts spécifiés dans le fichier de recettes individuel
- spécifié.
- -z Forcer la réinstallation des scripts qui se basent sur shouldrun/setdone
- -o OUTPUT
- Générer l'archive à lancer sur l'hôte distant au lieu de faire le
- déploiement. Si plusieurs hôtes sont spécifiés, OUTPUT est considéré
- comme un nom de base auquel est ajouté le nom de l'hôte sur lequel
- l'archive doit être déployée.
- --init
- --no-init
- Forcer (resp. empêcher) la création des répertoires d'hôte correspondant
- aux hôtes spécifiés. Par défaut, la création des répertoires d'hôte est
- effectuée uniquement si ce script est lancé sans argument.
- --sysinfos
- Après un déploiement réussi sur l'hôte distant, inscrire si ce n'est
- déjà fait le résultat de la commande usysinfos dans le fichier
- sysinfos.conf du répertoire d'hôte.
- Cette option est automatiquement activée si ce script est lancé sans
- argument (hors options).
-}}}
diff --git a/doc/ruinst.twp b/doc/ruinst.twp
deleted file mode 100644
index bfd5161..0000000
--- a/doc/ruinst.twp
+++ /dev/null
@@ -1,52 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:18
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: ruinst
-
-{{{
-ruinst: Déploiement distant avec uinst
-
-USAGE
- ruinst [-h host] [-T tmproot] [-- options de uinst]
-
-note: à cause d'une limitation de makeself, les options de uinst ne devraient
-pas contenir d'espaces ni de caractères spéciaux. L'échappement de ces
-caractères n'est pas garanti.
-
-OPTIONS
- -C Ne pas faire le déploiement. Configurer uniquement la connexion par clé
- sur les hôtes distants spécifiés pour le user spécifié. Il faut pouvoir
- se connecter par mot de passe pour configurer la connexion par clé.
- Si l'on veut configurer la connexion par clé pour le user root, mais que
- ce n'est pas possible de se connecter par mot de passe avec le user root
- sur l'hôte distant, et qu'il existe un user sudoer sur l'hôte distant,
- il est possible de faire la configuration avec '--configure root'. La
- commande serait alors
- ruinst -h user@host --configure root
- Si l'hôte distant n'a pas sudo ou si sudo n'est pas configuré, il faut
- rajouter l'option --uses-su, e.g:
- ruinst -h user@host --configure root --uses-su
- -T tmproot
- Spécifier le répertoire temporaire sur l'hôte distant, comme par exemple
- /var/tmp. Cette option est utile pour les vservers, qui ont par défaut
- un /tmp minuscule de 16 Mo.
- -S, --ssh ssh
- Spécifier le programme à utiliser pour la connection par ssh.
- -h hosts
- -h @hostsfile
- Spécifier un ou plusieurs hôtes sur lequels faire le déploiement. Pour
- spécifier plusieurs hôtes, il est possible d'utiliser plusieurs fois
- l'option -h, ou spécifier en une seule fois plusieurs hôtes en les
- séparant par un espace ou le caractère ':', e.g. 'host1 host2' ou
- 'host1:host2'. Si la spécification contient les caractères { et },
- l'expansion est effectuée, e.g
- -h 'root@{host1,host2}.univ.run'
- Par défaut, la connexion sur l'hôte distant se fait avec l'utilisateur
- root. Il est possible de spécifier un autre utilisateur avec la syntaxe
- user@host, e.g -h user@host
- La forme @hostsfile permet de lire la liste des hôtes depuis le fichier
- hostsfile, à raison d'un hôte par ligne.
-}}}
diff --git a/doc/rumount.twp b/doc/rumount.twp
deleted file mode 100644
index 0e3573f..0000000
--- a/doc/rumount.twp
+++ /dev/null
@@ -1,18 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:18
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: rumount
-
-{{{
-rumount: démonter un système de fichier récursivement
-
-USAGE
- rumount mountpoint
-
-Démonter tous les systèmes de fichiers qui sont montés en-dessous de mountpoint
-puis démonter mountpoint. Démonter aussi tous les systèmes de fichiers
-bind-montés à partir d'un sous-répertoire de mountpoint.
-}}}
diff --git a/doc/runs.twp b/doc/runs.twp
deleted file mode 100644
index 978e900..0000000
--- a/doc/runs.twp
+++ /dev/null
@@ -1,62 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:19
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: runs
-
-{{{
-runs: Lancer un script avec le protocole runs
-
-USAGE
- runs [options] rscriptname name=value...
- runs [options] @recipe name=value...
- runs [options] -f rscript name=value...
- runs [options] -r recipe name=value...
-
-OPTIONS
-Configuration
- --init
- --verify
- Vérifier le nom d'hôte et créer si nécessaire le répertoire d'hôte
- correspondant à l'hôte courant ou à l'hôte spécifié avec l'option -h
- Avec --verify, la création du répertoire d'hôte n'est pas effectuée.
- --sysinfos DATA
- Avec l'option --init, initialiser le fichier sysinfos.conf avec DATA, si
- le fichier n'a pas déjà été provisionné. Sans cette option, un fichier
- vide avec des commentaires est créé à la place.
- --create RSCRIPT
- Créer un modèle de script avec le nom donné.
- Avec l'option -h, le script est créé dans le répertoire d'hôte
- correspondant à l'hôte spécifié
-
-Gestion des scripts
- -s Forcer l'exécution du script avec l'utilisateur root si ce n'est pas
- déjà le cas
- -f RSCRIPT
- Lancer le script individuel spécifié au lieu de chercher dans les
- répertoires de $RUNSSCRIPTSPATH
- -r RECIPE
- Lancer les scripts spécifiés dans le fichier de recettes individuel
- spécifié.
- -h HOSTNAME[.DOMAIN]
- Spécifier que les scripts sont destinés à être lancés sur l'hôte
- spécifié. Les scripts sont alors aussi cherchés dans les répertoires
- {$RUNSHOSTSPATH}/$hostname.$domain (par défaut) et
- {$RUNSHOSTSPATH}/$domain/$hostname (le cas échéant)
- L'option --host est équivalente, sauf que son argument est facultatif et
- que sa valeur par défaut est l'hôte courant, soit sulfure
- --list
- Afficher la liste des scripts qui sont disponibles. Avec l'option -h,
- inclure aussi les scripts spécifiques à cet hôte.
- Avec cette option, les arguments supplémentaires agissent comme des
- filtres (regexp utilisée avec l'opérateur == de la commande [[). Les
- noms des scripts doivent valider au moins un filtre.
- --info
- Afficher la la description du script et la valeur de chaque variable
- définies
- --desc-only
- Afficher seulement la description du script
- -z Forcer la réinstallation des scripts qui se basent sur shouldrun/setdone
-}}}
diff --git a/doc/runsconfig.twp b/doc/runsconfig.twp
deleted file mode 100644
index 3cc4a10..0000000
--- a/doc/runsconfig.twp
+++ /dev/null
@@ -1,37 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:19
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: runsconfig
-
-{{{
-runsconfig: Gérer un répertoire d'hôte de runs
-
-USAGE
- runsconfig -c [host [destdir]]
- runsconfig -t -- args...
-
-OPTIONS
- -c, --create
- Créer un nouveau répertoire de configuration pour un hôte
- -d, --destdir DESTDIR[=runs]
- Nom du répertoire local de configuration.
-
- -t, --template [OPT]
- Gérer les fichiers du répertoire local avec templatectl. La valeur de
- cette option est utilisée comme argument court pour l'invocation de
- templatectl, e.g
- runsconfig -tm args
- est équivalent à
- templatectl -m args
- Les arguments qui restent sont passés tels quels à templatectl
- Les options courantes de templatectl -l, -v, -m, -L sont disponibles
- directement
- --help-template
- Afficher l'aide concernent la gestion des templates.
- Equivalent à -t -- --help
- -h, --host HOST
- Spécifier l'hôte. Equivalent à -v host=HOST
-}}}
diff --git a/doc/runsmod.twp b/doc/runsmod.twp
deleted file mode 100644
index 9d90c90..0000000
--- a/doc/runsmod.twp
+++ /dev/null
@@ -1,70 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:19
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: runsmod
-
-{{{
-runsmod: récupérer des dépôts git à usage de runs
-
-USAGE
- runsmod [options] [-h host] [modules...]
-
-Tous les dépôts spécifiés dans la configuration sont récupérés. Si des modules
-sont spécifiés, les dépôts correspondants sont récupérés aussi. Avec l'option
--h, des dépôts spécifiques à l'hôte peuvent éventuellement être récupérés en
-plus.
-
-OPTIONS
- -c, --config CONFIG
- Spécifier un fichier de configuration à charger au lieu de la valeur par
- défaut ~/etc/default/runs
- --prod
- --devel
- Forcer un mode de sélection des urls. En mode production, préférer pour
- le clonage les urls de production, qui sont en principe accessibles sans
- authentification et en lecture seule. En mode développement, préférer
- pour le clonage les urls de développement, qui sont en principe
- accessibles par clé ssh et en lecture/écriture
- --no-fetch
- Ne rien récupérer. Utile avec --update-repolist
- -N, --no-host
- -A, --all-hosts
- -H, -h, --host HOST
- -T, --this-host
- Options permettant de spécifier l'hôte pour la récupération de dépôts
- spécifiques.
- --no-host demande explicitement à ce qu'aucun hôte ne soit spécifié
- --all-hosts sélectionne tous les dépôts spécifiques
- --host récupère uniquement les dépôts pour l'hôte spécifié
- --this-host équivaut à --host sulfure
- L'option par défaut est --this-host en mode production et --all-hosts en
- mode développement
- --update-repolist
- Forcer la mise à jour de la liste des dépôts. En principe, cette mise à
- jour n'est pas faite plus d'une fois par période de 24 heures.
- -0, --offline
- -n, --no-pull
- -u, --pull
- Spécifier le mode opératoire pour la récupération des dépôts.
- En mode --offline, ni clone ni pull ne sont autorisés. Le module doit
- avoir déjà été cloné.
- En mode --no-pull, seul le clonage est autorisé, e.g. le dépôt est
- cloné si ce n'est pas déjà le cas.
- En mode --pull, cloner le dépôt si ce n'est pas déjà le cas, ou le
- mettre à jour le dépôt avant de l'utiliser s'il avait déjà été cloné.
- Par défaut, utiliser --pull en mode production et --no-pull en mode
- développement.
- -i, --identity IDENTITY_FILE
- Spécifier le fichier depuis lequel lire la clé privée pour les
- connexions par ssh.
- -o, --output OUTPUT
- Spécifier un fichier dans lequel écrire des définitions de variables,
- notamment REPODIRS qui reçoit la liste des chemins des dépôts qui ont
- été récupérés. De plus, les variables RUNSSCRIPTSPATH, RUNSMODULESPATH
- et RUNSHOSTSPATH sont définies.
- -a, --append-output
- Ajouter au fichier OUTPUT au lieu de l'écraser
-}}}
diff --git a/doc/rwoinst.twp b/doc/rwoinst.twp
deleted file mode 100644
index 0415fac..0000000
--- a/doc/rwoinst.twp
+++ /dev/null
@@ -1,38 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 15/03/2012 22:20
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: rwoinst
-
-{{{
-rwoinst: Déploiement distant avec woinst
-
-USAGE
- rwoinst [-H host] [-T tmproot] ... [-- options de woinst]
-
-OPTIONS
- -C Ne pas faire le déploiement. Configurer uniquement la connexion par clé
- sur les hôtes distants spécifiés pour le user spécifié. Il faut pouvoir
- se connecter par mot de passe pour configurer la connexion par clé.
- Si l'on veut configurer la connexion par clé pour le user root, mais que
- ce n'est pas possible de se connecter par mot de passe avec le user root
- sur l'hôte distant, et qu'il existe un user sudoer sur l'hôte distant,
- il est possible de faire la configuration avec '--configure root'. La
- commande serait alors
- rwoinst -H user@host --configure root
- -T tmproot
- Spécifier le répertoire temporaire sur l'hôte distant, comme par exemple
- /var/tmp. Cette option est utile pour les vservers, qui ont par défaut
- un /tmp minuscule de 16 Mo.
- -S ssh
- Spécifier le programme à utiliser pour la connection par ssh.
- -H host
- Spécifier un hôte distant sur lequel faire le déploiement. Plusieurs
- options -H peuvent être spécifiées, ou alors on peut séparer plusieurs
- hôtes par ':', e.g. -H host1:host2
- Par défaut, la connexion sur l'hôte distant se fait avec l'utilisateur
- root. Il est possible de spécifier un autre utilisateur avec la syntaxe
- user@host, e.g -H user@host
-}}}
diff --git a/doc/sqlcsv.twp b/doc/sqlcsv.twp
deleted file mode 100644
index fe91aba..0000000
--- a/doc/sqlcsv.twp
+++ /dev/null
@@ -1,98 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:19
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: sqlcsv
-
-{{{
-USAGE:
- sqlcsv [query]
-
-query est la requête SQL à exécuter. Si query n'est pas spécifiée ou si elle
- vaut '-', la requête SQL est lue sur l'entrée standard, ou depuis un
- fichier si l'option -f est spécifiée.
-
-DEMARRAGE
-
-Au démarrage, les répertoires de configuration (utilisateur ~/.sqlcsv et système
-/etc/sqlcsv) sont analysés. Les fichiers *.jar situés dans ces répertoires sont
-ajoutés au CLASSPATH. La présence de certains fichiers est testée pour activer
-éventuellement les logs détaillés.
-
-OPTIONS
- -C, --config CONFIG
- Prendre les informations de connexion depuis le fichier de propriété
- spécifié. Pour l'identifiant CONN, la propriété 'CONN.url' doit exister
- dans ce fichier avec la valeur de l'url jdbc de connexion. De plus, les
- propriétés 'CONN.user' et 'CONN.password' contiennent respectivement si
- nécessaire le nom et le mot de passe de connexion. La propriété
- 'loglevel', si elle existe, est utilisée pour configurer le niveau
- d'affichage des logs, comme avec l'option --loglevel
- Si cette option n'est pas spécifiée, un fichier nommé sqlcsv.properties
- est recherché dans l'ordre: dans le répertoire courant, dans le
- répertoire de configuration utilisateur, puis dans le répertoire de
- configuration système. Si le fichier est trouvé, il est chargé
- automatiquement.
- -l, --conn CONN
- Spécifier l'identifiant (ou l'url) de connexion. Cette information est
- obligatoire. Si cette option n'est pas fournie, il faut spécifier un
- fichier de configuration avec l'option -C dans lequel *une seule*
- propriété 'CONN.url' est définie.
- -u, --user USER
- -p, --password PASSWORD
- Spécifier un nom de connexion et un mot de passe si l'url ne le fournit
- pas. Ces valeurs ont la priorité sur les valeurs éventuellement déjà
- présentes dans le fichier de propriété.
- -f, --input INPUT
- Lire la requête depuis le fichier INPUT au lieu de la lire depuis la
- ligne de commande ou l'entrée standard. Ne pas spécifier cette option ou
- utiliser '-' pour lire depuis l'entrée standard. Cette option est
- ignorée si la requête est fournie sur la ligne de commande.
- -o, --output OUTPUT
- Ecrire le résultat dans le fichier OUTPUT. Utiliser '-' pour spécifier
- la sortie standard (c'est la valeur par défaut). S'il y a plusieurs
- requêtes et que le fichier de sortie n'est pas la sortie standard,
- ajouter un numéro incrémental au nom du fichier en sortie pour chaque
- requête. Sinon, il est possible de spécifier plusieurs fois cette option
- pour nommer les fichiers correspondant à chaque requête.
- -t, --autocommit
- Activer le mode autocommit
- -c, --ignore-io-error
- Continuer le traitement même en cas d'erreur du système de fichiers.
- Cependant le traitement s'arrête et la transaction est annulée si une
- autre erreur se produit.
- -y, --ignore-any-error
- Continuer le traitement même en cas d'erreur quelconque.
- -n, --no-headers
- Ne JAMAIS inclure les en-têtes dans la sortie, même avec l'option -h
- -a, --append
- Ajouter le résultat au fichier OUTPUT au lieu de l'écraser.
- -A, --auto-na
- Activer les option -n -a si le fichier OUTPUT existe et qu'il est non
- vide. Le test n'est effectué que pour le premier fichier spécifié.
- -s, --same-output
- Utiliser le même fichier pour écrire le résultat de toutes les requêtes.
- Normalement, un numéro incrémental est ajouté au fichier en sortie si
- plusieurs requêtes sont spécifiées. Si les en-têtes sont les mêmes,
- ajouter le résultat au fichier directement à la suite. Sinon, sauter une
- ligne blanche et afficher les nouveaux en-têtes.
- -h, --force-headers
- En cas d'écriture du résultat de plusieurs requêtes dans un même
- fichier, ne pas tenter de concaténer les résultats même si les en-têtes
- sont les mêmes.
- --uc-output
- Ajouter dans la sortie les résultat de toutes les requêtes, pas
- seulement celles de type DQML
- --loglevel LOGLEVEL
- Spécifier le niveau de logs à afficher. Les valeurs valides sont à
- choisir parmi ALL, FINEST, FINER, FINE, CONFIG, INFO, WARNING, ERROR
- La présence de certains fichiers dans les répertoires de configuration
- utilisateur ou système configure les logs avant que les options de la
- ligne de commande ne soient analysés: un fichier DEBUG fait démarrer
- l'application avec le niveau de log ALL ce qui permet de voir les logs
- concernant le chargement des jar. Un fichier SQL_DEBUG permet d'activer
- la trace de DriverManager. Exemple:
- mkdir -p ~/.sqlcsv && touch ~/.sqlcsv/{DEBUG,SQL_DEBUG}
-}}}
diff --git a/doc/EnsureVM.md b/doc/tools/EnsureVM.md
similarity index 100%
rename from doc/EnsureVM.md
rename to doc/tools/EnsureVM.md
diff --git a/doc/SKvm.md b/doc/tools/SKvm.md
similarity index 100%
rename from doc/SKvm.md
rename to doc/tools/SKvm.md
diff --git a/doc/SVirtualBox.md b/doc/tools/SVirtualBox.md
similarity index 100%
rename from doc/SVirtualBox.md
rename to doc/tools/SVirtualBox.md
diff --git a/doc/_root.md b/doc/tools/_root.md
similarity index 100%
rename from doc/_root.md
rename to doc/tools/_root.md
diff --git a/doc/apacheconfig.md b/doc/tools/apacheconfig.md
similarity index 100%
rename from doc/apacheconfig.md
rename to doc/tools/apacheconfig.md
diff --git a/doc/authftp.md b/doc/tools/authftp.md
similarity index 100%
rename from doc/authftp.md
rename to doc/tools/authftp.md
diff --git a/doc/caturl.md b/doc/tools/caturl.md
similarity index 100%
rename from doc/caturl.md
rename to doc/tools/caturl.md
diff --git a/doc/tools/chrono.py.md b/doc/tools/chrono.py.md
new file mode 100644
index 0000000..d3a9a0b
--- /dev/null
+++ b/doc/tools/chrono.py.md
@@ -0,0 +1,28 @@
+# chrono.py
+
+~~~
+usage: chrono.py [options] [TIMEOUT]
+
+Afficher un chronomètre
+
+positional arguments:
+ TIMEOUT (valeur vide)
+ chronomètre qui démarre à 0:00 et ne s'arrête pas
+ H:M:S (heures:minutes:secondes)
+ ou M:S (minutes:secondes)
+ ou M (minutes)
+ minuteur qui démarre à H:M:S et fait un décompte jusqu'à 0:00. A la fin
+ du décompte, une sonnerie retentit.
+ @H[:M[:S]]
+ minuteur qui fonctionne comme précédemment, sauf qu'on spécifie l'heure
+ d'arrivée, et que la durée est calculée automatiquement
+
+optional arguments:
+ -h, --help show this help message and exit
+ -n, --no-autostart Ne pas démarrer automatiquement le décompte même si TIMEOUT est spécifié.
+ -s, --autostart Forcer le démarrage automatique du décompte, même si TIMEOUT n'est pas spécifié.
+
+Si TIMEOUT est spécifié, par défaut le décompte démarre automatiquement.
+~~~
+
+-*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary
\ No newline at end of file
diff --git a/doc/compileAndGo.md b/doc/tools/compileAndGo.md
similarity index 100%
rename from doc/compileAndGo.md
rename to doc/tools/compileAndGo.md
diff --git a/doc/cssh.md b/doc/tools/cssh.md
similarity index 100%
rename from doc/cssh.md
rename to doc/tools/cssh.md
diff --git a/doc/doinplace.md b/doc/tools/doinplace.md
similarity index 100%
rename from doc/doinplace.md
rename to doc/tools/doinplace.md
diff --git a/doc/dumpclients.md b/doc/tools/dumpclients.md
similarity index 100%
rename from doc/dumpclients.md
rename to doc/tools/dumpclients.md
diff --git a/doc/em.md b/doc/tools/em.md
similarity index 87%
rename from doc/em.md
rename to doc/tools/em.md
index 9f5b43e..bd3f8ae 100644
--- a/doc/em.md
+++ b/doc/tools/em.md
@@ -13,6 +13,7 @@ read the main documentation for these command-line arguments.
Initialization options:
--batch do not do interactive display; implies -q
+--chdir DIR change to directory DIR
--daemon start a server in the background
--debug-init enable Emacs Lisp debugger for init file
--display, -d DISPLAY use X server DISPLAY
@@ -20,9 +21,11 @@ Initialization options:
--no-init-file, -q load neither ~/.emacs nor default.el
--no-shared-memory, -nl do not use shared memory
--no-site-file do not load site-start.el
+--no-site-lisp, -nsl do not add site-lisp directories to load-path
--no-splash do not display a splash screen on startup
--no-window-system, -nw do not communicate with X, ignoring $DISPLAY
---quick, -Q equivalent to -q --no-site-file --no-splash
+--quick, -Q equivalent to:
+ -q --no-site-file --no-site-lisp --no-splash
--script FILE run FILE as an Emacs Lisp script
--terminal, -t DEVICE use DEVICE for terminal I/O
--user, -u USER load ~USER/.emacs instead of your own
@@ -32,7 +35,7 @@ Action options:
FILE visit FILE using find-file
+LINE go to line LINE in next FILE
+LINE:COLUMN go to line LINE, column COLUMN, in next FILE
---directory, -L DIR add DIR to variable load-path
+--directory, -L DIR prepend DIR to load-path (with :DIR, append DIR)
--eval EXPR evaluate Emacs Lisp expression EXPR
--execute EXPR evaluate Emacs Lisp expression EXPR
--file FILE visit FILE using find-file
@@ -51,14 +54,14 @@ Display options:
--border-color, -bd COLOR main border color
--border-width, -bw WIDTH width of main border
--color, --color=MODE override color mode for character terminals;
- MODE defaults to `auto', and can also
- be `never', `auto', `always',
+ MODE defaults to `auto', and
+ can also be `never', `always',
or a mode name like `ansi8'
--cursor-color, -cr COLOR color of the Emacs cursor indicating point
--font, -fn FONT default font; must be fixed-width
--foreground-color, -fg COLOR window foreground color
--fullheight, -fh make the first frame high as the screen
---fullscreen, -fs make first frame fullscreen
+--fullscreen, -fs make the first frame fullscreen
--fullwidth, -fw make the first frame wide as the screen
--maximized, -mm make the first frame maximized
--geometry, -g GEOMETRY window geometry
@@ -82,7 +85,7 @@ example, -batch as well as --batch. You can use any unambiguous
abbreviation for a --option.
Various environment variables and window system resources also affect
-Emacs' operation. See the main documentation.
+the operation of Emacs. See the main documentation.
Report bugs to bug-gnu-emacs@gnu.org. First, please see the Bugs
section of the Emacs manual or the file BUGS.
diff --git a/doc/fconv.md b/doc/tools/fconv.md
similarity index 100%
rename from doc/fconv.md
rename to doc/tools/fconv.md
diff --git a/doc/fnconv.md b/doc/tools/fnconv.md
similarity index 100%
rename from doc/fnconv.md
rename to doc/tools/fnconv.md
diff --git a/doc/tools/fndate.md b/doc/tools/fndate.md
new file mode 100644
index 0000000..b73dcd6
--- /dev/null
+++ b/doc/tools/fndate.md
@@ -0,0 +1,69 @@
+# fndate
+
+~~~
+fndate: manipuler des noms de fichier pour les dater
+
+USAGE
+ fndate (FILE|DIR)s...
+ fndate -k SRCs... [DESTDIR]
+ fndate -m SRCs... [DESTDIR]
+ fndate -c COMMAND [ARGs...]
+
+OPTIONS
+ --create-or-rename
+ Créer un nouveau fichier (option -f) ou créer un nouveau répertoire
+ (option -d), ou renommer un fichier existant sans le changer de
+ répertoire. C'est l'option par défaut.
+ -f, --create-file
+ Créer un nouveau fichier. Cette option est ignorée si le fichier ou le
+ répertoire spécifié existe. C'est la valeur par défaut
+ -d, --create-dir
+ Créer un nouveau répertoire. Cette option est ignorée si le fichier ou
+ le répertoire spécifié existe.
+ -k, --copy
+ Copier le fichier SRC vers la destination DESTDIR qui vaut par défaut le
+ répertoire courant si un seul fichier source est spécifié. Si plusieurs
+ fichiers sources sont spécifiés, il faut absolument spécifier un
+ répertoire destination. Dans la destination, les fichiers sont nommés
+ avec la date en préfixe.
+ -m, --move
+ Déplacer le fichier SRC vers la destination DESTDIR qui vaut par défaut
+ le répertoire courant si un seul fichier source est spécifié. Si
+ plusieurs fichiers sources sont spécifiés, il faut absolument spécifier
+ un répertoire destination. Dans la destination, les fichiers sont nommés
+ avec la date en préfixe.
+ -c, --cmd
+ Les arguments sont une commande à lancer. Dans les argument, PLACEHOLDER
+ est remplacé par la date. Si le PLACEHOLDER n'est trouvé dans aucun des
+ arguments, alors ajouter la date à la fin de la commande. Par exemple,
+ voici comment émuler l'option -k
+ fndate -c cp src dest/~~
+ --string
+ Remplacer dans chaque argument le placeholder par la date et afficher le
+ résultat.
+ -P, --placeholder PLACEHOLDER
+ Dans le nom spécifié, remplacer PLACEHOLDER par la date. Par défaut,
+ PLACEHOLDER vaut ~~. Si le nom spécifié ne contient pas le PLACEHOLDER,
+ il est placé au début.
+ -@, --force-date DATE
+ Dans le nom spécifié, si la date est déjà présente, forcer son
+ remplacement par la valeur spécifiée. Par défaut, le fichier n'est pas
+ modifié si la date est déjà présente.
+ -F, --format FORMAT
+ Spécifier le format de la date à insérer dans le nom du fichier. Par
+ défaut, FORMAT vaut 'YYMMDD-'
+ Les formats valides sont:
+ YYYY année sur 4 chiffres
+ YY année sur 2 chiffres
+ MM mois sur 2 chiffres
+ DD jour sur 2 chiffres
+ Tous les autres caractères sont pris tels-quels
+ -s, --short
+ Equivalent à -F YYMMDD --autof
+ -l, --long
+ Equivalent à -F YYYMMDD --autof
+ --autof
+ Option non (pas encore) documentée
+~~~
+
+-*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary
\ No newline at end of file
diff --git a/doc/tools/foreach.md b/doc/tools/foreach.md
new file mode 100644
index 0000000..3048e78
--- /dev/null
+++ b/doc/tools/foreach.md
@@ -0,0 +1,80 @@
+# foreach
+
+~~~
+foreach: lancer une commande pour un ensemble d'arguments
+
+USAGE
+ foreach [options] [VAR=]expr cmd...
+ foreach [options] [VAR=]items... -- cmd...
+
+La commande est lancée avec la variable 'VAR', qui vaut par défaut 'item',
+définie à la valeur courante de l'énumération. De plus, la variable 'index'
+reçoit une valeur incrémentale commençant à 0.
+
+La deuxième syntaxe appelée syntaxe alternative permet de spécifier un ensemble
+d'éléments directement, mais nécessite l'utilisation du séparateur '--' pour
+identifier où s'arrête la liste des éléments.
+
+En plus de VAR, les variables file, dir, name, basename, ext et dotext sont
+définies. Elle valent respectivement le chemin absolu du fichier, le répertoire
+absolu du fichier, le nom du fichier, le nom de base sans extension, l'extension
+sans le point et l'extension avec le point, e.g pour item=dir/file.ext on a
+file=/path/to/dir/file.ext, dir=/path/to/dir, name=file.ext, basename=file,
+ext=ext, dotext=.ext
+
+Les 3 exemples suivants sont équivalents:
+ foreach '*.c' cp %item dest/dir
+ foreach item='*.c' cp %item dest/dir
+ foreach *.c -- cp %item dest/dir
+
+OPTIONS
+ -b, --basedir BASEDIR
+ Chercher les expressions -d, -f, -a à partir de BASEDIR au lieu du
+ répertoire courant.
+ -d, --dir
+ -f, --file
+ -a, --all
+ -s, --string
+ Ces options permettent de spécifier le type d'expression et la façon de
+ les traiter. Avec -d, faire la correspondance de l'expression sur les
+ répertoires uniquement. Avec -f, faire la correspondance sur les fichier
+ uniquement. Avec -a, faire la correspondance sur les répertoires et les
+ fichiers. Avec -s, évaluer l'expression avec la fonction 'eval' du
+ shell.
+ Si la syntaxe alternative est utilisée, le premier élément est évalué
+ conformément à ces options *si et seulement s'il* est précédé d'une
+ chaine 'VAR='. Les autres éléments sont pris tels-quels. e.g:
+ cette commande affiche uniquement la chaine '*.c':
+ foreach '*.c' --
+ alors que celle-ci liste les fichiers qui ont l'extension '.c':
+ foreach 'item=*.c' --
+ -p, --parent
+ Pour chaque fichier/répertoire, se placer dans le répertoire parent
+ avant de lancer la commande. item est aussi modifié pour ne plus
+ contenir que le nom de la cible (qui est désormais dans le répertoire
+ courant)
+ Cette option a la priorité sur --go
+ -g, --go
+ Si la cible est un répertoire, en faire le répertoire courant avant de
+ lancer la commande. Si la cible est un fichier, faire comme --parent et
+ se placer dans le répertoire du fichier avant de lancer la commande.
+ Dans les deux cas, item est modifié pour ne plus contenir que le nom de
+ la cible, soit '.' pour le répertoire courant, soit le nom du fichier
+ dans le répertoire courant.
+ Si cette option est mentionnée seule, elle implique --dir
+ -x, --expand
+ -n, --no-expand
+ Reconnaitre et traiter (resp. ne pas reconnaitre) la syntaxe %var dans
+ les arguments. C'est le cas par défaut, ce qui permet de simplifier
+ l'écriture d'une ligne de commande. Pour écrire le caractère '%', il
+ suffit de le doubler e.g %%item
+ Si l'expansion est désactivée, il faut protéger le caractère $ pour
+ qu'il soit traité, e.g, avec les examples ci-dessus:
+ foreach -n '*.c' 'cp "$item" dest/dir'
+ -t, --title
+ --no-title
+ Afficher (resp. ne pas afficher) chaque correspondance avant de lancer
+ la commande. Par défaut, l'affichage est effectué.
+~~~
+
+-*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary
\ No newline at end of file
diff --git a/doc/geturl.md b/doc/tools/geturl.md
similarity index 100%
rename from doc/geturl.md
rename to doc/tools/geturl.md
diff --git a/doc/mkRewriteRules.md b/doc/tools/mkRewriteRules.md
similarity index 100%
rename from doc/mkRewriteRules.md
rename to doc/tools/mkRewriteRules.md
diff --git a/doc/mkiso.md b/doc/tools/mkiso.md
similarity index 100%
rename from doc/mkiso.md
rename to doc/tools/mkiso.md
diff --git a/doc/mkurl.md b/doc/tools/mkurl.md
similarity index 100%
rename from doc/mkurl.md
rename to doc/tools/mkurl.md
diff --git a/doc/mkusfx.md b/doc/tools/mkusfx.md
similarity index 100%
rename from doc/mkusfx.md
rename to doc/tools/mkusfx.md
diff --git a/doc/mocifs.md b/doc/tools/mocifs.md
similarity index 100%
rename from doc/mocifs.md
rename to doc/tools/mocifs.md
diff --git a/doc/modav.md b/doc/tools/modav.md
similarity index 100%
rename from doc/modav.md
rename to doc/tools/modav.md
diff --git a/doc/moiso.md b/doc/tools/moiso.md
similarity index 100%
rename from doc/moiso.md
rename to doc/tools/moiso.md
diff --git a/doc/mossh.md b/doc/tools/mossh.md
similarity index 100%
rename from doc/mossh.md
rename to doc/tools/mossh.md
diff --git a/doc/mysqlcsv.md b/doc/tools/mysqlcsv.md
similarity index 100%
rename from doc/mysqlcsv.md
rename to doc/tools/mysqlcsv.md
diff --git a/doc/mysqlloadcsv.md b/doc/tools/mysqlloadcsv.md
similarity index 100%
rename from doc/mysqlloadcsv.md
rename to doc/tools/mysqlloadcsv.md
diff --git a/doc/noerr.md b/doc/tools/noerr.md
similarity index 100%
rename from doc/noerr.md
rename to doc/tools/noerr.md
diff --git a/doc/noerror.md b/doc/tools/noerror.md
similarity index 100%
rename from doc/noerror.md
rename to doc/tools/noerror.md
diff --git a/doc/noout.md b/doc/tools/noout.md
similarity index 100%
rename from doc/noout.md
rename to doc/tools/noout.md
diff --git a/doc/nutools.md b/doc/tools/nutools.md
similarity index 100%
rename from doc/nutools.md
rename to doc/tools/nutools.md
diff --git a/doc/openurl.md b/doc/tools/openurl.md
similarity index 100%
rename from doc/openurl.md
rename to doc/tools/openurl.md
diff --git a/doc/pdev.md b/doc/tools/pdev.md
similarity index 100%
rename from doc/pdev.md
rename to doc/tools/pdev.md
diff --git a/doc/prel.md b/doc/tools/prel.md
similarity index 88%
rename from doc/prel.md
rename to doc/tools/prel.md
index 7e19a20..f9dd0bd 100644
--- a/doc/prel.md
+++ b/doc/tools/prel.md
@@ -67,15 +67,15 @@ OPTIONS
fichier VERSION.txt avec pver. Utiliser cette option si la mise à jour
du numéro de version doit être faite d'une manière particulière.
-e, --edit
- Editer le fichier CHANGES.txt autogénéré par -u -w
- Cette option est surtout utile si -m est utilisé avec -u, pour donner la
- possibilité de corriger la liste des modifications avant leur
- enregistrement définitif.
+ Editer le fichier CHANGES.md autogénéré par les options -u -w ou un
+ fichier CHANGES.txt existant. Cette option est surtout utile si -m est
+ utilisé avec -u, pour donner la possibilité de corriger la liste des
+ modifications avant leur enregistrement définitif.
-m, --merge
Si la branche actuelle est une branche de release, ou s'il existe une
branche de release, la merger dans master, puis dans develop, puis la
- supprimer. Puis basculer sur la branche master.
+ supprimer. A l'issu de cette opération, rester sur la branche develop.
S'il n'existe pas de branche de release, proposer de fusionner les
modifications de la branche develop dans la branche master, sans
préparer de branche de release au préalable.
@@ -89,13 +89,17 @@ OPTIONS
-s, --summary
Afficher la liste des différences entre la branche develop et la branche
master, comme elle serait générée par les options -u -w pour le fichier
- CHANGES.txt
+ CHANGES.txt (la syntaxe pour CHANGES.md est légèrement différente)
-l, --log
Afficher les modifications actuellement effectuée dans la branche de
release par rapport à develop.
-d, --diff
Afficher les modifications actuellement effectuée dans la branche de
release par rapport à develop, sous forme de diff.
+
+OPTIONS AVANCEES
+ --uc, --upgrade-changes
+ Convertir un fichier CHANGES.txt en CHANGES.md
~~~
-*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary
\ No newline at end of file
diff --git a/doc/tools/pver.md b/doc/tools/pver.md
new file mode 100644
index 0000000..8db8c3b
--- /dev/null
+++ b/doc/tools/pver.md
@@ -0,0 +1,201 @@
+# pver
+
+~~~
+pver: gérer des numéros de version selon les règles du versionage sémantique v2.0.0 (http://semver.org/)
+
+USAGE
+ pver [options]
+
+OPTIONS
+ -w, --auto-file DIR
+ Gérer le numéro de version du répertoire spécifié. Si un fichier pom.xml
+ existe dans ce répertoire, alors c'est l'option '-e DIR/pom.xml' qui est
+ activé. Si un fichier VERSION.txt existe dans ce répertoire, alors c'est
+ l'option '-f DIR/VERSION.txt' qui est activée. Sinon, un nouveau fichier
+ VERSION.txt est créé dans ce répertoire. C'est l'option par défaut.
+ --sw, --auto-string DIR
+ Prendre pour valeur de départ la version du répertoire spécifié. Si un
+ fichier pom.xml existe dans ce répertoire, alors c'est l'option -E qui
+ est activé. Si un fichier VERSION.txt existe dans ce répertoire, alors
+ c'est l'option -F qui est activée.
+ --gw, --auto-git-string [BRANCH:]DIR
+ Prendre pour valeur de départ la version du répertoire spécifié dans la
+ branche BRANCH (qui vaut par défaut master) du dépôt git. Si un fichier
+ pom.xml existe dans ce répertoire, alors c'est l'option -g qui est
+ activé. Si un fichier VERSION.txt existe dans ce répertoire, alors c'est
+ l'option -G qui est activée.
+ -e, --pom POMFILE
+ Gérer le numéro de version se trouvant dans le fichier pom.xml spécifié.
+ Le fichier DOIT exister. Implique --maven-update
+ -E, --pom-string POMFILE
+ Prendre pour valeur de départ la version contenue dans le fichier
+ pom.xml spécifié. Le fichier DOIT exister. Implique --maven-update
+ -f, --file VERSIONFILE
+ Gérer le numéro de version se trouvant dans le fichier spécifié. Le
+ fichier est créé si nécessaire.
+ -F, --file-string VERSIONFILE
+ Prendre pour valeur de départ le contenu du fichier VERSIONFILE.
+ -g, --git-file-string [BRANCH:]VERSIONFILE
+ Prendre pour valeur de départ le contenu du fichier VERSIONFILE (qui
+ vaut par défaut VERSION.txt) dans la branche BRANCH (qui vaut par défaut
+ master) du dépôt git. Retourner 2 si on n'est pas situé dans un dépôt
+ git.
+ -G, --git-pom-string [BRANCH:]POMFILE
+ Prendre pour valeur de départ la version du fichier POMFILE (qui vaut
+ par défaut pom.xml) dans la branche BRANCH (qui vaut par défaut master)
+ du dépôt git. Retourner 2 si on n'est pas situé dans un dépôt git.
+ --git-prel-string
+ Prendre pour valeur de départ le numéro de version correspondant à la
+ branche de release courante. Retourner 1 si la branche courante n'est
+ pas une branche de release, 2 si on n'est pas situé dans un dépôt git.
+ -s, --string VERSION
+ Prendre pour valeur de départ le numéro de version spécifié
+
+ --show
+ Afficher le numéro de version. C'est l'action par défaut
+ --check
+ Vérifier que le numéro de version est conforme aux règles du versionage
+ sémantique
+ --eq VERSION
+ --ne VERSION
+ --lt VERSION
+ --le VERSION
+ --gt VERSION
+ --ge VERSION
+ --same VERSION
+ --diff VERSION
+ Comparer avec la version spécifiée. Les opérateurs --eq, --ne, --lt,
+ --le, --gt, et --ge ignorent l'identifiant de build (comme le demande la
+ règle du versionage sémantique). Les opérateurs --same et --diff
+ comparent aussi les identifiants de build.
+ -u, --update
+ Mettre à jour le numéro de version.
+
+Les options suivantes impliquent --update:
+ -v, --set-version VERSION
+ Spécifier un nouveau numéro de version qui écrase la valeur actuelle.
+ Cette option ne devrait pas être utilisée en temps normal parce que cela
+ va contre les règles du versionage sémantique.
+ --prel
+ Spécifier un nouveau numéro de version qui écrase la valeur actuelle. Le
+ numéro de version est obtenu à partir du nom de la branche git courante,
+ qui doit être de la forme release-VERSION
+ --menu
+ Afficher un menu permettant de choisir le composant de la version à
+ incrémenter.
+ -x, --major
+ Augmenter le numéro de version majeure.
+ -z, --minor
+ Augmenter le numéro de version mineure. C'est la valeur par défaut, sauf
+ avec --maven-update où c'est l'option -p qui est sélectionnée par
+ défaut.
+ -p, --patchlevel
+ Augmenter le numéro de patch.
+ -k, --keep
+ Ne pas augmenter le numéro de version. Cette option est surtout utile
+ pour *convertir* un numéro de version existant et mettre à jour le
+ fichier correspondant. Elle est assumée si aucune option -[xzp] n'est
+ spécifiée et qu'une des options -[labrSRmM] est utilisée.
+
+ -l, --prelease ID
+ Spécifier un identifiant de pré-release, à ajouter au numéro de version.
+ -a, --alpha
+ -b, --beta
+ -r, --rc
+ Spécifier une pré-release de type alpha, beta, ou rc. Si la version est
+ déjà dans ce type, augmenter la dernière valeur numérique des composants
+ de l'identifiant, e.g. alpha deviant alpha.1, beta-1.2 devient beta-1.3,
+ rc1 devient rc2
+ XXX ces fonctions ne sont pas encore implémentées
+ -S, --snapshot
+ Ajouter l'identifiant SNAPSHOT, utilisé par Maven
+ -R, --final, --release
+ Supprimer l'identifiant de prérelease, utilisé par Maven
+
+ -m, --metadata ID
+ Spécifier un identifiant de build, à ajouter au numéro de version.
+ -M, --vcs-metadata
+ Calculer l'identifiant de build à partir de la révision actuelle dans le
+ gestionnaire de version. Note: pour le moment, seul git est supporté.
+ --add-metadata ID
+ Ajouter l'identifiant spécifié à la valeur actuelle, au lieu de la
+ remplacer. Séparer l'identifiant de la valeur précédente avec un '.'
+
+OPTIONS AVANCEES
+ --show-source
+ Afficher le type de source qui sera traité, i.e. pom, file, pom-string,
+ file-string, git-pom-string, git-file-string
+ --vpath VPATH
+ Pour les options -e et -E, spécifier le chemin XPATH du tag qui contient
+ le numéro de version.
+ --map MAPFILE
+ Cette option permet de spécifier un fichier de règles qui indique les
+ fichiers pom.xml et VERSION.txt qui doivent être mis à jour dans un
+ projet multi-modules pour lequel les versions doivent être mises à jour
+ en même temps.
+ Par défaut, si un fichier nommé .pver-map existe dans le répertoire de
+ {POM,VERSION}FILE, cette option est automatiquement activée. Ainsi, on
+ n'aura besoin d'utiliser cette option que si l'on désire charger un
+ fichier alternatif ou ignorer le fichier par défaut.
+ Si une valeur vide est fournie, seul le fichier {POM,VERSION}FILE est
+ traité. Sinon, {POM,VERSION}FILE est utilisé uniquement pour chercher le
+ fichier .pver-map et seuls les fichiers mentionnés dans MAPFILE sont
+ traités.
+ Le fichier MAPFILE est constitué d'un ensemble de lignes de la forme
+ FILESPEC:VPATH
+ FILESPEC est requis et prend la forme d'une spécification de chemin
+ relatif au répertoire de MAPFILE et identifiant un ensemble de fichiers
+ de version. Si FILESPEC contient des wildcards, alors les fichiers
+ identifiés par ce chemin sont ignorés s'ils ont déjà été traités par une
+ règle précédente. Si FILESPEC ne contient pas de wildcards, alors le
+ fichier est systématiquement traité.
+ VPATH désigne le chemin XPATH vers le numéro de version qu'il faut
+ mettre à jour dans les fichiers pom.xml. Certaines valeurs spéciales
+ pour VPATH sont supportées:
+ (vide) le chemin par défaut est utilisé pour ce fichier, c'est à
+ dire /project/version ou /project/parent/version en fonction
+ du contenu du fichier
+ - le fichier pom.xml n'est pas modifié (il est ignoré)
+ D alias pour le chemin XPATH /project/version
+ P alias pour le chemin XPATH /project/parent/version
+ Pour les fichiers VERSION.txt, VPATH doit être vide
+ Le fichier de version correspondant au premier fichier de la première
+ ligne de MAPFILE contient la version de référence, qui est dupliquée
+ dans tous les autres fichiers.
+ --allow-empty
+ Supporter que la version puisse ne pas être spécifiée ni trouvée. Sans
+ cette option, on assume que la version effective est 0.0.0 si elle n'est
+ pas spécifiée ni trouvée.
+ Avec --show et --update, ne rien afficher si la version est vide.
+ --convert
+ --no-convert
+ Activer (resp. désactiver) la conversion automatique. Par défaut, si la
+ version est au format classique 'x.z[.p]-rDD/MM/YYYY', elle est
+ convertie automatiquement au format sémantique x.z.p+rYYYYMMDD
+ -t, --maven-update
+ Mettre à jour le numéro de version selons les règles de Maven. Cette
+ option est automatiquement activée si -e est sélectionné. Elle n'est
+ prise en compte qu'avec l'option -u
+ Si les options -R et -S ne sont pas spécifiée, alors une release est
+ transformée en snapshot et une snapshot en release. Avec -R, une
+ snapshot est transformée en release, et une release est traitée /
+ incrémentée normalement. Avec -S une release est transformée en
+ snapshot, et un snapshot est traité / incrémentée normalement.
+ Si l'une des options -x, -z, -p est utilisée, alors la partie spécifiée
+ est incrémentée selon les règles suivantes. Dans les exemples suivants,
+ A est un nombre quelconque, B = A + 1, et x, y et z sont des nombres
+ quelconques.
+ Avec l'option -x:
+ A.0.0-SNAPSHOT --> A.0.0
+ A.x.y-SNAPSHOT --> B.0.0
+ x.A.y --> x.B.0-SNAPSHOT
+ Avec l'option -z:
+ x.A.0-SNAPSHOT --> x.A.0
+ x.A.y-SNAPSHOT --> x.B.0
+ x.A.y --> x.B.0-SNAPSHOT
+ Avec l'option -p, qui est celle sélectionnée par défaut:
+ x.y.z-SNAPSHOT --> x.y.z
+ x.y.A --> x.y.B-SNAPSHOT
+~~~
+
+-*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary
\ No newline at end of file
diff --git a/doc/pz.md b/doc/tools/pz.md
similarity index 100%
rename from doc/pz.md
rename to doc/tools/pz.md
diff --git a/doc/reptyr.cgo.md b/doc/tools/reptyr.cgo.md
similarity index 100%
rename from doc/reptyr.cgo.md
rename to doc/tools/reptyr.cgo.md
diff --git a/doc/rmtildes.md b/doc/tools/rmtildes.md
similarity index 100%
rename from doc/rmtildes.md
rename to doc/tools/rmtildes.md
diff --git a/doc/rruns.md b/doc/tools/rruns.md
similarity index 100%
rename from doc/rruns.md
rename to doc/tools/rruns.md
diff --git a/doc/ruinst.md b/doc/tools/ruinst.md
similarity index 100%
rename from doc/ruinst.md
rename to doc/tools/ruinst.md
diff --git a/doc/rumount.md b/doc/tools/rumount.md
similarity index 100%
rename from doc/rumount.md
rename to doc/tools/rumount.md
diff --git a/doc/runs.md b/doc/tools/runs.md
similarity index 96%
rename from doc/runs.md
rename to doc/tools/runs.md
index 3ecd61c..a648b04 100644
--- a/doc/runs.md
+++ b/doc/tools/runs.md
@@ -40,7 +40,7 @@ Gestion des scripts
{$RUNSHOSTSPATH}/$hostname.$domain (par défaut) et
{$RUNSHOSTSPATH}/$domain/$hostname (le cas échéant)
L'option --host est équivalente, sauf que son argument est facultatif et
- que sa valeur par défaut est l'hôte courant, soit sulfure
+ que sa valeur par défaut est l'hôte courant, soit natrix
--list
Afficher la liste des scripts qui sont disponibles. Avec l'option -h,
inclure aussi les scripts spécifiques à cet hôte.
diff --git a/doc/runsconfig.md b/doc/tools/runsconfig.md
similarity index 100%
rename from doc/runsconfig.md
rename to doc/tools/runsconfig.md
diff --git a/doc/runsmod.md b/doc/tools/runsmod.md
similarity index 89%
rename from doc/runsmod.md
rename to doc/tools/runsmod.md
index 8c5bf5e..b68b3f3 100644
--- a/doc/runsmod.md
+++ b/doc/tools/runsmod.md
@@ -11,6 +11,9 @@ sont spécifiés, les dépôts correspondants sont récupérés aussi. Avec l'op
-h, des dépôts spécifiques à l'hôte peuvent éventuellement être récupérés en
plus.
+Il est possible de spécifier le module '*' pour récupérer tous les modules
+disponibles. C'est utile sur un poste de développement.
+
OPTIONS
-c, --config CONFIG
Spécifier un fichier de configuration à charger au lieu de la valeur par
@@ -33,12 +36,15 @@ OPTIONS
--no-host demande explicitement à ce qu'aucun hôte ne soit spécifié
--all-hosts sélectionne tous les dépôts spécifiques
--host récupère uniquement les dépôts pour l'hôte spécifié
- --this-host équivaut à --host sulfure
+ --this-host équivaut à --host natrix
L'option par défaut est --this-host en mode production et --all-hosts en
mode développement
--update-repolist
Forcer la mise à jour de la liste des dépôts. En principe, cette mise à
jour n'est pas faite plus d'une fois par période de 24 heures.
+ --shallow-clone
+ Faire un clone avec une profondeur de 1. C'est la valeur par défaut pour
+ le mode production.
-0, --offline
-n, --no-pull
-u, --pull
diff --git a/doc/rwoinst.md b/doc/tools/rwoinst.md
similarity index 100%
rename from doc/rwoinst.md
rename to doc/tools/rwoinst.md
diff --git a/doc/sqlcsv.md b/doc/tools/sqlcsv.md
similarity index 100%
rename from doc/sqlcsv.md
rename to doc/tools/sqlcsv.md
diff --git a/doc/twsync.md b/doc/tools/twsync.md
similarity index 100%
rename from doc/twsync.md
rename to doc/tools/twsync.md
diff --git a/doc/uawk.md b/doc/tools/uawk.md
similarity index 100%
rename from doc/uawk.md
rename to doc/tools/uawk.md
diff --git a/doc/ubackup.md b/doc/tools/ubackup.md
similarity index 100%
rename from doc/ubackup.md
rename to doc/tools/ubackup.md
diff --git a/doc/ucalc.md b/doc/tools/ucalc.md
similarity index 100%
rename from doc/ucalc.md
rename to doc/tools/ucalc.md
diff --git a/doc/uconf.md b/doc/tools/uconf.md
similarity index 100%
rename from doc/uconf.md
rename to doc/tools/uconf.md
diff --git a/doc/ucrontab.md b/doc/tools/ucrontab.md
similarity index 100%
rename from doc/ucrontab.md
rename to doc/tools/ucrontab.md
diff --git a/doc/udaemon.cgo.md b/doc/tools/udaemon.cgo.md
similarity index 100%
rename from doc/udaemon.cgo.md
rename to doc/tools/udaemon.cgo.md
diff --git a/doc/udir.md b/doc/tools/udir.md
similarity index 100%
rename from doc/udir.md
rename to doc/tools/udir.md
diff --git a/doc/udist.md b/doc/tools/udist.md
similarity index 100%
rename from doc/udist.md
rename to doc/tools/udist.md
diff --git a/doc/uenv.md b/doc/tools/uenv.md
similarity index 100%
rename from doc/uenv.md
rename to doc/tools/uenv.md
diff --git a/doc/ufixmod.md b/doc/tools/ufixmod.md
similarity index 100%
rename from doc/ufixmod.md
rename to doc/tools/ufixmod.md
diff --git a/doc/ugenpass.md b/doc/tools/ugenpass.md
similarity index 100%
rename from doc/ugenpass.md
rename to doc/tools/ugenpass.md
diff --git a/doc/uinc.md b/doc/tools/uinc.md
similarity index 100%
rename from doc/uinc.md
rename to doc/tools/uinc.md
diff --git a/doc/uinc.sh.md b/doc/tools/uinc.sh.md
similarity index 100%
rename from doc/uinc.sh.md
rename to doc/tools/uinc.sh.md
diff --git a/doc/uinst.md b/doc/tools/uinst.md
similarity index 100%
rename from doc/uinst.md
rename to doc/tools/uinst.md
diff --git a/doc/uinst.sh.md b/doc/tools/uinst.sh.md
similarity index 100%
rename from doc/uinst.sh.md
rename to doc/tools/uinst.sh.md
diff --git a/doc/ujava.md b/doc/tools/ujava.md
similarity index 100%
rename from doc/ujava.md
rename to doc/tools/ujava.md
diff --git a/doc/uldap.md b/doc/tools/uldap.md
similarity index 100%
rename from doc/uldap.md
rename to doc/tools/uldap.md
diff --git a/doc/tools/ulib.md b/doc/tools/ulib.md
new file mode 100644
index 0000000..281a9cf
--- /dev/null
+++ b/doc/tools/ulib.md
@@ -0,0 +1,63 @@
+# ulib
+
+~~~
+ulib: Gestion des librairies ulib et pyulib
+
+USAGE
+ ulib [options] --destdir DESTDIR [options]
+ ulib [options] --version [options]
+ ulib [options] --shell [options]
+
+SYNCHRONISER ULIB/PYULIB
+ -S, --sync
+ Synchroniser ulib, pyulib et les scripts de support
+ -d, --destdir DESTDIR
+ Synchroniser ulib et/ou pyulib dans le répertoire destdir.
+ Les options -u et -p permettent de choisir ce qui est synchronisé
+ -u, --ulib
+ Copier/mettre à jour ulib (par défaut)
+ -p, --pyulib
+ Copier/mettre à jour pyulib
+ -s, --support
+ Copier/mettre à jour les scripts de support
+
+GERER LA VERSION DE ULIB
+ -v, --version
+ Gérer la version de ulib
+ -l, --show
+ Afficher la version de la librairie (par défaut)
+ -s, --system
+ Afficher aussi la version de la librairie système
+ -c, --check MIN_VERSION
+ Vérifier que la version de la librairie est au minimum MIN_VERSION, et
+ afficher un message d'information. Utiliser l'option -q si l'on veut
+ juste tester la version et ne pas afficher le message d'information.
+ -V, --set-version VERSION
+ Forcer la version de ulib
+ -u, --update
+ Incrémenter la version de ulib. Les options -x, -z, -p permettent de
+ choisir le numéro qui est incrémenté.
+ -x, --major
+ Augmenter le numéro de version majeure
+ -z, --minor
+ Augmenter le numéro de version mineure. C'est l'option par défaut
+ -p, --patchlevel
+ Augementer le numéro de patch
+
+LANCER UN SHELL (par défaut)
+ -s, --shell
+ Lancer un shell dans lequel les modules de ulib spécifiés sont chargés.
+ De plus, PATH est modifié pour que /home/jclain/wop/modules/nutools soit ajouté en premier.
+ Les arguments restants sont passés inchangés au shell.
+ -r, --require module
+ Spécifier un module à charger avec urequire. Plusieurs modules peuvent
+ être spécifiés en les séparant par ':'
+ Par défaut, seul le module DEFAULTS est chargé.
+ --force-reload
+ Forcer le (re)chargement des modules avec urequire. Cette option est
+ utile pour le développement. En effet, dans le shell, la commande
+ 'urequire module' (re)charge toujours le module, même s'il avait déjà
+ été chargé.
+~~~
+
+-*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary
\ No newline at end of file
diff --git a/doc/ulink.md b/doc/tools/ulink.md
similarity index 100%
rename from doc/ulink.md
rename to doc/tools/ulink.md
diff --git a/doc/umatch.md b/doc/tools/umatch.md
similarity index 100%
rename from doc/umatch.md
rename to doc/tools/umatch.md
diff --git a/doc/umirror.md b/doc/tools/umirror.md
similarity index 100%
rename from doc/umirror.md
rename to doc/tools/umirror.md
diff --git a/doc/tools/umountr.md b/doc/tools/umountr.md
new file mode 100644
index 0000000..4caac66
--- /dev/null
+++ b/doc/tools/umountr.md
@@ -0,0 +1,18 @@
+# umountr
+
+~~~
+umountr: démonter un système de fichier récursivement
+
+USAGE
+ umountr mountpoint
+
+Démonter tous les systèmes de fichiers qui sont montés en-dessous de mountpoint
+puis démonter mountpoint. Démonter aussi tous les systèmes de fichiers
+bind-montés à partir d'un sous-répertoire de mountpoint.
+
+OPTION
+ -c, --continuous
+ Continuer même en cas d'erreur
+~~~
+
+-*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary
\ No newline at end of file
diff --git a/doc/upassword.md b/doc/tools/upassword.md
similarity index 100%
rename from doc/upassword.md
rename to doc/tools/upassword.md
diff --git a/doc/tools/update-nutools.md b/doc/tools/update-nutools.md
new file mode 100644
index 0000000..4ba94b0
--- /dev/null
+++ b/doc/tools/update-nutools.md
@@ -0,0 +1,16 @@
+# update-nutools
+
+~~~
+update-nutools: mettre à jour nutools
+
+USAGE:
+ update-nutools [--develop]
+
+OPTIONS
+ -d, --develop
+ Mettre à jour avec la branche develop pour avoir les dernières fonctions
+ qui ne sont pas encore stabilisées. Par défaut, la mise à jour est faite
+ avec la branche master.
+~~~
+
+-*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary
\ No newline at end of file
diff --git a/doc/uprefix.md b/doc/tools/uprefix.md
similarity index 100%
rename from doc/uprefix.md
rename to doc/tools/uprefix.md
diff --git a/doc/uproject.md b/doc/tools/uproject.md
similarity index 95%
rename from doc/uproject.md
rename to doc/tools/uproject.md
index 15555c3..93b3e16 100644
--- a/doc/uproject.md
+++ b/doc/tools/uproject.md
@@ -56,8 +56,9 @@ COMMANDS
-R Afficher les modifications effectuées depuis la dernière release.
clone git@host:path/to/repo [destdir]
- Cloner un dépôt distant. Initialiser git annex si le dépôt contient des
- fichiers annexés. Récupérer aussi ces fichiers avec 'git annex get'
+ Cloner un dépôt distant. Basculer sur la branche develop si elle existe.
+ Initialiser git annex si le dépôt contient des fichiers annexés.
+ Récupérer aussi ces fichiers avec 'git annex get'
crone git@host:path/to/repo [destdir]
Créer un dépôt distant sur gitolite, puis le cloner
diff --git a/doc/uscrontab.md b/doc/tools/uscrontab.md
similarity index 100%
rename from doc/uscrontab.md
rename to doc/tools/uscrontab.md
diff --git a/doc/ussh.md b/doc/tools/ussh.md
similarity index 100%
rename from doc/ussh.md
rename to doc/tools/ussh.md
diff --git a/doc/usysinfos.md b/doc/tools/usysinfos.md
similarity index 100%
rename from doc/usysinfos.md
rename to doc/tools/usysinfos.md
diff --git a/doc/utempl.md b/doc/tools/utempl.md
similarity index 100%
rename from doc/utempl.md
rename to doc/tools/utempl.md
diff --git a/doc/utrigger.md b/doc/tools/utrigger.md
similarity index 100%
rename from doc/utrigger.md
rename to doc/tools/utrigger.md
diff --git a/doc/uwatch.md b/doc/tools/uwatch.md
similarity index 100%
rename from doc/uwatch.md
rename to doc/tools/uwatch.md
diff --git a/doc/vzusage.md b/doc/tools/vzusage.md
similarity index 100%
rename from doc/vzusage.md
rename to doc/tools/vzusage.md
diff --git a/doc/woArchive.md b/doc/tools/woArchive.md
similarity index 100%
rename from doc/woArchive.md
rename to doc/tools/woArchive.md
diff --git a/doc/woSwitch.md b/doc/tools/woSwitch.md
similarity index 100%
rename from doc/woSwitch.md
rename to doc/tools/woSwitch.md
diff --git a/doc/woctl.md b/doc/tools/woctl.md
similarity index 100%
rename from doc/woctl.md
rename to doc/tools/woctl.md
diff --git a/doc/woinst.md b/doc/tools/woinst.md
similarity index 100%
rename from doc/woinst.md
rename to doc/tools/woinst.md
diff --git a/doc/wosign.md b/doc/tools/wosign.md
similarity index 100%
rename from doc/wosign.md
rename to doc/tools/wosign.md
diff --git a/doc/twsync.twp b/doc/twsync.twp
deleted file mode 100644
index c867f77..0000000
--- a/doc/twsync.twp
+++ /dev/null
@@ -1,39 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 15/03/2012 22:20
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: twsync
-
-{{{
-twsync: synchroniser un répertoire de wiki avec un tiddlywiki
-
-USAGE
- twsync [options]
-
-Un répertoire de wiki est un répertoire où chaque page est contenu dans un
-fichier avec l'extension .twp
-Un tiddlywiki est un fichier html contenant le code de TiddlyWiki et les données
-associées.
-
-OPTIONS
- -d wikidir
- -f wikifile
- Spécifier le répertoire de wiki et le tiddlywiki à traiter. Par défaut,
- il s'agit de wiki.html dans le répertoire courant.
- -u Importer les pages de wikidir dans le tiddlywiki. Utiliser cette action
- quand les pages de wikidir sont modifiées et qu'il faut mettre à jour le
- tiddlywiki.
- Il s'agit de l'action par défaut
- --force
- Forcer l'importation des pages même si les tiddlers correspondant sont
- plus récents dans le tiddlywiki
- Forcer aussi la regénération de wikifile même si aucune modification n'a
- été détectée
- -e Exporter les tiddlers du tiddlywiki vers wikidir. Utiliser cette action
- quand le tiddlywiki a été modifié, et qu'il faut synchroniser wikidir
- avec les dernières modifications.
- -U Mettre à jour le fichier wikifile avec la dernière version de tiddlywiki
- située dans ~/wop/modules/nutools/lib/tiddlywiki/empty.html
-}}}
diff --git a/doc/uawk.twp b/doc/uawk.twp
deleted file mode 100644
index 494c2d8..0000000
--- a/doc/uawk.twp
+++ /dev/null
@@ -1,17 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:19
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: uawk
-
-{{{
-uawk: wrapper pour des outils implémentés en awk
-
-USAGE
- uawk TOOL args...
-
-Les noms d'outils valides sont: awkrun awkcsv grepcsv awkfsv2csv mergecsv sortcsv dumpcsv printcsv
-Utiliser l'option --help pour obtenir de l'aide sur chacun des outils
-}}}
diff --git a/doc/ubackup.twp b/doc/ubackup.twp
deleted file mode 100644
index 90510bb..0000000
--- a/doc/ubackup.twp
+++ /dev/null
@@ -1,24 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 15/03/2012 22:20
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: ubackup
-
-{{{
-ubackup: faire une sauvegarde des fichiers
-
-USAGE
- ubackup [options]
-
-OPTIONS
- -l Lister les profils de sauvegarde disponibles.
- -p Spécifier le profil de sauvegarde à effectuer. Par défaut, toutes les
- sauvegardes sont effectuées.
- -u USER
- Faire le sauvegarde pour l'utilisateur $USER. Cette option n'est valide
- que pour l'utilisateur root.
- -n Afficher ce qui doit être fait plutôt que de le faire
- -H Arrêter la machine après une sauvegarde REUSSIE.
-}}}
diff --git a/doc/ucalc.twp b/doc/ucalc.twp
deleted file mode 100644
index 87c3bef..0000000
--- a/doc/ucalc.twp
+++ /dev/null
@@ -1,35 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:19
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: ucalc
-
-{{{
-ucalc: Afficher une valeur dans plusieurs unités
-
-USAGE
- ucalc value
-
-Sans suffixe, la valeur est exprimée en octets. Sinon, elle peut être suffixée
-pour spécifier l'unité dans laquelle est exprimée la valeur:
- K,M,G,T -- Kibi (1024), Mibi (1024^2), Gibi (1024^3), Tebi (1024^4)
- k,m,g,t -- Kilo (1000), Mega (1000^2), Giga (1000^3), Tera (1000^4)
- s -- secteurs de 512 octets
- S -- secteurs de 2048 octets
- p -- pages de 4096 octets
- c -- cylindres (si l'option -c est spécifiée)
- b -- octets
-
-OPTIONS
- -u UNIT
- Spécifier l'unité de value. Le suffixe qui est éventuellement sur value
- est ignoré.
- -o UNIT
- Spécifier l'unité en sortie. Par défaut, afficher la valeur dans toutes
- les unités supportées.
- -c VALUE
- Taille d'un cylindre en octets, pour permettre l'affichage des valeurs
- en cylindres
-}}}
diff --git a/doc/uconf.twp b/doc/uconf.twp
deleted file mode 100644
index 14fa196..0000000
--- a/doc/uconf.twp
+++ /dev/null
@@ -1,56 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 27/04/2016 03:19
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: uconf
-
-{{{
-uconf: Activer ou désactiver un paramètre dans un fichier de configuration
-
-USAGE
- uconf [options] config name[=value]...
-
-OPTIONS
- -e
- Activer le paramètre (par défaut). Si le paramètre existe, mais est
- commenté, il est décommenté. Si une valeur est spécifiée pour le
- paramètre, le paramètre est modifié dans le fichier en conséquence.
- -q
- Cette option s'utilise avec l'option -e et le type shell. Elle permet
- de s'assurer que les valeurs ayant des espaces et/ou des caractères
- spéciaux sont quotées
- -d
- Désactiver le paramètre. Le paramètre est commenté s'il existe dans le
- fichier
- -a
- Ajouter une valeur à la variable, ou un paramètre avec cette valeur
- (suivant le type de fichier de configuration)
- -A
- Ajouter une valeur au tableau, ou un paramètre avec cette valeur
- (suivant le type de fichier de configuration)
- -t TYPE
- Type de fichier de configuration. TYPE peut être sh (par défaut), apache
- ou mysql.
- shell
- les paramètres sont de la forme 'name=value', et les commentaires
- débutent par '#'. Ce type peut être utilisé pour tous les fichiers
- ayant ces caractéristiques, dont les fichiers de script shell
- apache
- les paramètres sont de la forme 'name value', et les commentaires
- débutent par '#'. Ce type peut être utilisé pour tous les fichiers
- ayant ces caractéristiques, dont les fichiers de configuration
- apache
- mysql, php
- les paramètres sont dans des sections nommées de la forme [section],
- sont de la forme 'name=value', et les commentaires débutent par '#'
- ou ';'
- Ce type peut être utilisé pour tous les fichiers ayant ces
- caractéristiques, dont les fichiers de configuration de mysql et de
- php. Avec ce type, la section est obligatoire.
- -s SECTION
- Avec le type mysql, préciser la section dans laquelle inscrire le
- paramètre. Attention! La section DOIT exister, elle n'est pas créée
- automatiquement.
-}}}
diff --git a/doc/ucrontab.twp b/doc/ucrontab.twp
deleted file mode 100644
index a077fa1..0000000
--- a/doc/ucrontab.twp
+++ /dev/null
@@ -1,90 +0,0 @@
-# -*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
-##@creator: jclain
-##@created: 15/03/2012 22:20
-##@modifier: jclain
-##@changecount: 1
-##@tags:
-##@title: ucrontab
-
-{{{
-ucrontab: Ajouter/Supprimer une ligne dans crontab
-
-USAGE
- ucrontab [options] ctline
-
-OPTIONS
- -a Ajouter la ligne dans le fichier crontab (par défaut)
- -r Enlever la ligne dans le fichier crontab
- -u user
- Spécifier l'utilisateur pour lequel on modifie crontab. Par défaut,
- modifier le crontab de root
- -H host:hosts...
- Modifier le crontab sur les hôtes distants spécifiés. Avec l'hôte '.' ou
- 'localhost', la modification est faite sur l'hôte local
- Si l'action est -a, un script 'undo-ucrontab.sh' est créé dans le
- répertoire courant, qui annule la planification. Il est possible de
- lancer ce script le lendemain pour enlever les planifications
- installées.
- ctline
- Ligne de crontab de la forme 'minutes hours days months dows command'
- Si la ligne est de la forme halt[@hh:mm], la commande 'shutdown -h now'
- est planifiée pour le LENDEMAIN à hh:mm. si hh:mm n'est pas spécifié,
- l'arrêt est planifié pour 7:00
- -t hh:mm
- Ignorer la partie 'minutes hours days months dows' de ctline, et la
- remplacer par une planification à hh:mm le LENDEMAIN.
- --dom dayOfMonth
- --month month
- Spécifier respectivement le jour du mois et le mois (1-12) auquel faire
- la planification. Par défaut, les planifications sont effectuées pour le
- LENDEMAIN. Il est conseillé de spécifier les deux arguments si le jour
- doit être fixé.
- -s cmdfile
- Spécifier un fichier, dont le contenu est utilisé pour générer le script
- qui est planifié. Le fichier doit contenir l'ensemble des commandes à
- exécuter. Le script est modifié pour s'autodétruire à la fin de son
- exécution. Si ce comportement n'est pas souhaité, il faut rajouter la
- commande 'exit 0' à la fin.
- -S cmd
- Comme -s, mais spécifier le contenu du fichier directement sur la ligne
- de commande.
- -f hostsfile
- Spécifier un fichier qui contient la liste des hôtes sur lesquels faire
- les planifications.
- Les options -s, -S, -H, -d, -n sont ignorées. L'option --add est valide
- jusqu'au premier @group du fichier. Voici le format de ce fichier:
-
- Un groupe d'hôte débute par une ligne de la forme '@group:adelay:gdelay'
- - adelay est le nombre de minutes à laisser passer entre les hôtes du
- groupe (par défaut 1)
- - gdelay est le nombre de minutes à laisser passer après le traitement
- du groupe (par défaut 15)
- Les autres lignes sont des hôtes sur lequels planifier l'opération, de
- la forme 'host:cmd'
- - host est un nom d'hôte pleinement qualifié, sur lequel il est possible
- de se connecter par clé.
- - cmd est une description de la commande à lancer pour effectuer
- l'opération planifiée. Utiliser la syntaxe '