Compare commits
	
		
			3 Commits
		
	
	
		
			master
			...
			update-nul
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 916d869af8 | |||
| 95e5fdcbf3 | |||
| cf9e2ef8c1 | 
							
								
								
									
										448
									
								
								CHANGES.md
									
									
									
									
									
								
							
							
						
						
									
										448
									
								
								CHANGES.md
									
									
									
									
									
								
							@ -1,451 +1,3 @@
 | 
			
		||||
## Version 11.4.0 du 27/02/2025-08:44
 | 
			
		||||
 | 
			
		||||
* `7cc9629` modifs.mineures sans commentaires
 | 
			
		||||
* `df3986e` maj chemins registres
 | 
			
		||||
* `e674b31` améliorer la prise en charge de dkbuild imbriqué
 | 
			
		||||
* `7611760` paramètres par défaut pour dkbuild
 | 
			
		||||
* `056ae57` maj doc dkbuild -c
 | 
			
		||||
* `6f9ab14` support java 21
 | 
			
		||||
* `c9eaf7d` maj dkbuild.env par défaut
 | 
			
		||||
* `693f447` maj fichier dkbuild.env
 | 
			
		||||
* `6e23aae` maj config par défaut
 | 
			
		||||
 | 
			
		||||
## Version 11.3.1 du 31/12/2024-15:05
 | 
			
		||||
 | 
			
		||||
* `b9f264f` bug avec dkbuild -e
 | 
			
		||||
* `737179b` modifs.mineures sans commentaires
 | 
			
		||||
* `2687e72` support minimal runphp
 | 
			
		||||
 | 
			
		||||
## Version 11.3.0 du 24/09/2024-16:02
 | 
			
		||||
 | 
			
		||||
* `625d5f1` bug mineur
 | 
			
		||||
* `e308202` dkbuild: améliorer from_glob()
 | 
			
		||||
* `5c03184` lgrep, lless: modifier la doc pour ne parler que d'un fichier
 | 
			
		||||
 | 
			
		||||
## Version 11.2.0 du 21/06/2024-20:34
 | 
			
		||||
 | 
			
		||||
* `21042e4` bug
 | 
			
		||||
* `e4176df` reginc: possibilité de renommer des fichiers
 | 
			
		||||
* `1787aa2` bug
 | 
			
		||||
* `d1f77aa` dkbuild: support dist none et tag LATEST
 | 
			
		||||
* `c2cfd77` bug
 | 
			
		||||
* `e7745c2` dk: support --plain-output
 | 
			
		||||
* `ce8f541` dkbuild: -g pour --profile
 | 
			
		||||
* `30594aa` maj distributions
 | 
			
		||||
* `2df175e` dkbuild: cosmetic
 | 
			
		||||
* `fbb05f8` support des versions AMUE
 | 
			
		||||
 | 
			
		||||
## Version 11.1.0 du 01/02/2024-20:59
 | 
			
		||||
 | 
			
		||||
* `8570d12` pff: les répertoires liés peuvent contenir des fichiers
 | 
			
		||||
* `5d6c6b4` synchroniser pff et nulib/pff
 | 
			
		||||
* `90bda71` pff: support des répertoires liés
 | 
			
		||||
* `7d7b88a` autoriser les feature branches qui commencent par wip/
 | 
			
		||||
* `5cc1826` dk et dkbuild: support .composer.yaml et setup_image
 | 
			
		||||
* `0bf0f48` dk: support ~/.dkbuild.env
 | 
			
		||||
* `b818e11` dkbuild: ajout de --plain
 | 
			
		||||
* `ad14de3` dkbuild: configuration profil prod par défaut
 | 
			
		||||
* `54a5b54` Sscreen: support des cas où screen n'est pas dans le PATH
 | 
			
		||||
* `5a06851` dkbuild: support profil par défaut
 | 
			
		||||
* `a855b04` dkbuild: les versions de profil sont ordonnées comme les versions de distribution
 | 
			
		||||
* `e531553` dkbuild: sans --all-profiles, ne build que dans le profil par défaut
 | 
			
		||||
* `db1467b` bug
 | 
			
		||||
* `3123d8e` dkbuild: mappings par défaut
 | 
			
		||||
* `d9b1485` charnière entre java 8 et java 11
 | 
			
		||||
* `744a3fa` dkbuild: indiquer si la version de Java demandée n'est pas trouvée
 | 
			
		||||
* `2803868` dkbuild: marquer plus d'action comme étant du build
 | 
			
		||||
* `4f7bc3f` dkbuild: bug avec -u seul
 | 
			
		||||
* `8cdc3cb` modifs.mineures sans commentaires
 | 
			
		||||
 | 
			
		||||
## Version 11.0.0 du 05/09/2023-14:29
 | 
			
		||||
 | 
			
		||||
* `ddfbc00` maj des images par défaut dk et dkbuild
 | 
			
		||||
* `e33f2a5` ajout registry privé
 | 
			
		||||
* `f245e17` image par défaut en prod
 | 
			
		||||
* `efe31b8` support java17
 | 
			
		||||
* `5cb4112` dkbuild: bug profil unitaire
 | 
			
		||||
* `f424f41` dkbuild: -u n'implique plus -b
 | 
			
		||||
* `e5a1473` dkbuild: implémenter -u
 | 
			
		||||
 | 
			
		||||
## Version 10.0.0 du 12/08/2023-21:06
 | 
			
		||||
 | 
			
		||||
* `bfdf9b5` support système sans python2
 | 
			
		||||
* `108215f` maj registry pour devel
 | 
			
		||||
* `6ddb870` dkbuild: support profil nu
 | 
			
		||||
* `c0b130f` dkbuild: support profil jclain
 | 
			
		||||
* `ae20e49` modifs.mineures sans commentaires
 | 
			
		||||
* `2e5101d` ajout de lgrep
 | 
			
		||||
* `cff4833` ajout de ldiff
 | 
			
		||||
* `9c6e7a8` renommer less1 en lless
 | 
			
		||||
* `e9d52d8` ajout de less1 pour lire des fichiers latin1
 | 
			
		||||
* `d3d86c6` cssh: forcer la désactivation du verrouillage de la session
 | 
			
		||||
* `b761cb6` Sscreen: désactiver verrouillage de la session
 | 
			
		||||
 | 
			
		||||
## Version 9.16.0 du 15/06/2023-15:28
 | 
			
		||||
 | 
			
		||||
* `f36be0d` uscrontab: s'assurer que USER est défini
 | 
			
		||||
* `63674ef` cosmetic
 | 
			
		||||
* `ee80091` cosmetic
 | 
			
		||||
 | 
			
		||||
## Version 9.15.0 du 14/06/2023-15:41
 | 
			
		||||
 | 
			
		||||
* `2a02307` update-nutools: prendre le dépôt public par défaut
 | 
			
		||||
* `27a82e4` ajouter les numéros de version des debian et ubuntu
 | 
			
		||||
* `92157de` regins: implémentation initiale
 | 
			
		||||
* `efe9fbb` dk: ajout de XX pour prune-cache
 | 
			
		||||
* `dc94b5c` dkbuild: bug avec les chemins
 | 
			
		||||
* `5e87665` dk: X supprimer aussi le cache
 | 
			
		||||
* `9c1a8e6` dk: composer.phar est cherché dans sbin/ aussi
 | 
			
		||||
* `81cefdc` regcp: activer support regexp-extended
 | 
			
		||||
* `c5796d6` modifs.mineures sans commentaires
 | 
			
		||||
* `6919352` maj du message de commit par défaut
 | 
			
		||||
* `7ba7d1c` pcxone: correction de l'url généré des dépôts git
 | 
			
		||||
* `9d75943` repoctl: correction de l'url généré des dépôts git
 | 
			
		||||
 | 
			
		||||
## Version 9.14.0 du 15/03/2023-17:48
 | 
			
		||||
 | 
			
		||||
* `3ecb127` support docker compose v2
 | 
			
		||||
* `432ab6f` dkbuild: composer et mvn ne sont lancés qu'en mode build
 | 
			
		||||
* `01c14bb` regcp: ajout de l'option -n
 | 
			
		||||
* `0913c2e` upassword: rendre configurable le nombre de blocs
 | 
			
		||||
* `61433fb` dkbuild: revert image par défaut pour javabuilder
 | 
			
		||||
* `e4e0a55` pff: support mode vcs offline
 | 
			
		||||
* `e08c66b` pff: support des archives sh de l'amue
 | 
			
		||||
* `0d11932` dkbuild: corriger l'image javabuilder par défaut
 | 
			
		||||
* `3ead1f3` dkbuild: utiliser automatiquement l'image si nécessaire pour composer ou maven
 | 
			
		||||
* `93de256` ajout de regcp et regmv
 | 
			
		||||
* `5e33a36` rendre cohérent les en-têtes des scripts
 | 
			
		||||
* `9e13515` ajout exemple .dkbuild.env
 | 
			
		||||
* `c9e8110` dkbuild: corriger calcul des tags
 | 
			
		||||
* `c671cb3` dkbuild: fin support tag & last version
 | 
			
		||||
* `1a764f1` dkbuild: début support tag & last version
 | 
			
		||||
* `027f9b8` dkbuild: ajout de from_glob()
 | 
			
		||||
* `2293239` maj doc
 | 
			
		||||
* `9fc07bb` dkbuild: ajout build add-tags=
 | 
			
		||||
* `7b15f94` dkbuild: support préfixe et suffixe pour version
 | 
			
		||||
* `f2cfaee` dkbuild: calculer extract automatiquement
 | 
			
		||||
* `c36b8fb` dkbuild: corriger le support des paramètres sans argument
 | 
			
		||||
* `68a42d0` dkbuild: maj templates
 | 
			
		||||
* `306e77f` dkbuild: calcul de la version à partir d'un fichier ou d'un chemin
 | 
			
		||||
* `b006bb4` Maj des fichiers
 | 
			
		||||
* `6963d41` uproject: push -f force le push
 | 
			
		||||
* `9665d5a` cx-conndev: maj doc
 | 
			
		||||
* `137dfa9` repoctl, uproject: ne plus enlever le suffixe .git
 | 
			
		||||
* `440d2aa` upassword: maj nombre de blocs par défaut
 | 
			
		||||
* `f4047a3` ipaddr: forcer la sortie couleur
 | 
			
		||||
* `af1bdd3` Maj des fichiers
 | 
			
		||||
* `85e77e4` dkbuild: corriger le calcul de la dernière version d'une distribution
 | 
			
		||||
* `a56ec0e` dkbuild: améliorer clean
 | 
			
		||||
* `d6e78b9` dkbuild: maj messages debug
 | 
			
		||||
* `1699cc5` dkbuild: les fichiers d'environnement par défaut ont l'extension .env
 | 
			
		||||
* `2ae8406` maj doc dkbuild
 | 
			
		||||
* `1db7d08` maj doc cx-shelldev
 | 
			
		||||
* `aba08c2` maj update-nutools
 | 
			
		||||
* `e83b6d1` possibilité de choisir l'adresse IP
 | 
			
		||||
* `af9096d` ajouter le template fichier vide
 | 
			
		||||
* `89f0c09` typo
 | 
			
		||||
* `fb434c2` bug parse_date
 | 
			
		||||
* `f7ab14f` dkbuild: implémentation initiale
 | 
			
		||||
* `f46812f` cx-conndev: maj doc
 | 
			
		||||
 | 
			
		||||
## Version 9.13.0 du 07/02/2022-22:20
 | 
			
		||||
 | 
			
		||||
* `06686d9` pff: support nettoyage wsdl/
 | 
			
		||||
* `9a018a6` pdev: ajout de --check
 | 
			
		||||
* `a932a1a` la branche par défaut est master en prod
 | 
			
		||||
* `cb09f4d` maj template yaml
 | 
			
		||||
* `f895222` foreach: rendre -g et -S compatibles
 | 
			
		||||
* `4f7bcbc` maj template CSS
 | 
			
		||||
* `5cdd93d` upassword: réintégrer password wom
 | 
			
		||||
* `7030b87` dk: ajouter mvn_action=install
 | 
			
		||||
* `8a682ed` upassword: changer le générateur aléatoire
 | 
			
		||||
* `a85cdf6` Maj des fichiers
 | 
			
		||||
* `d75783b` dmcerts: cosmetic
 | 
			
		||||
* `11e6021` dmcerts: certificat client avec la même durée que le CA
 | 
			
		||||
* `938307c` ajout dmcerts
 | 
			
		||||
* `8b49084` typo
 | 
			
		||||
* `98c1ac8` ajouter le support de bullseye
 | 
			
		||||
* `28d42b0` authftp: support des mots de passe avec des caractères spéciaux
 | 
			
		||||
* `dfdfd59` sélectionner java 1.6 par défaut pour worun
 | 
			
		||||
* `6af0359` pff: ajout de la commande normalisée new_cmd_amue_clean_libs
 | 
			
		||||
* `b3a44d0` pff: bug
 | 
			
		||||
* `111463a` pff: ajout AUTO_CMDS et NEW_CMDS, supprimer MKDIRS
 | 
			
		||||
* `fe839f4` woinst: bug
 | 
			
		||||
* `ba8e1a1` upasword: ajout des mot de passe javamonitor de webobjects
 | 
			
		||||
* `a75b91e` network: utiliser 127.0.1.1 pour dhcp
 | 
			
		||||
* `dfb5fc3` maj ulib/redhat
 | 
			
		||||
* `40c9cb9` supprimer docker/ qui est obsolète
 | 
			
		||||
* `580e20b` supprimer nulib de la distribution de nutools
 | 
			
		||||
* `da28d8b` pff: changer le format des fichiers de version
 | 
			
		||||
 | 
			
		||||
## Version 9.12.0 du 29/03/2021-09:41
 | 
			
		||||
 | 
			
		||||
* `3d54e37` pff: bug origext
 | 
			
		||||
* `4607f0f` possibilité de spécifier compat bash_completion si pas debian
 | 
			
		||||
* `4bf4f6d` authftp: info pour host key verification failed
 | 
			
		||||
* `47e0583` forcer l'utilisation de python2
 | 
			
		||||
* `026b849` dmctl: support de l'import de plusieurs machines avec -l
 | 
			
		||||
* `31e43da` dk: support de 'system' comme alias de 'none' pour COMPOSER_PHP et MAVEN_JAVA
 | 
			
		||||
* `b191552` dk: bug dans le mapping par défaut dans le profil test
 | 
			
		||||
* `1d4c4b4` dk: support COMPOSER_PHP=none
 | 
			
		||||
* `b3983ed` dk: support des mappings d'hôtes
 | 
			
		||||
* `543d2d2` dk: mvn est aussi un frontend pour lancer java
 | 
			
		||||
* `f1a9c7a` dk: début support projets maven
 | 
			
		||||
* `ad44a1c` dk: support build dans une image pour les projets composer
 | 
			
		||||
 | 
			
		||||
## Version 9.11.0 du 11/12/2020-15:43
 | 
			
		||||
 | 
			
		||||
* `01e940b` repoctl: permettre create -u
 | 
			
		||||
* `e453ed2` maj doc
 | 
			
		||||
* `434a8bc` compileAndGo: support java 11
 | 
			
		||||
 | 
			
		||||
## Version 9.10.0 du 12/11/2020-23:05
 | 
			
		||||
 | 
			
		||||
* `24d0519` dk: support merge .shared_env et .machine_env
 | 
			
		||||
* `45c40d7` dk: support de --pull
 | 
			
		||||
* `c921d2a` pff: support de NOUPSTREAM
 | 
			
		||||
* `edf956f` dk: BRANCH peut aussi être un ^COMMIT
 | 
			
		||||
* `85842f3` renommer start-screen en Sscreen
 | 
			
		||||
* `e395720` maj doc
 | 
			
		||||
* `4603b1a` bug
 | 
			
		||||
* `a91542b` maj .gitattributes par défaut
 | 
			
		||||
* `51c4c33` support sélection java 11
 | 
			
		||||
* `82a7952` dm: support des aliases pour ssh aussi
 | 
			
		||||
* `d1d32de` dk: bug avec update-devel
 | 
			
		||||
* `037cb1a` maj template sql
 | 
			
		||||
* `04d037f` support rhel8 / ol8
 | 
			
		||||
* `725ba6d` cssh: donner un nom à la session
 | 
			
		||||
 | 
			
		||||
## Version 9.9.0 du 21/09/2020-18:08
 | 
			
		||||
 | 
			
		||||
* `2ec6c21` support gros doigt de python2 sur les systèmes modernes
 | 
			
		||||
* `bc1a740` bug
 | 
			
		||||
* `ada594a` dm: support des aliases
 | 
			
		||||
* `856c948` repoctl: ajout de update-origin
 | 
			
		||||
* `cc1b45d` support de l'option -u
 | 
			
		||||
* `28ceb74` cosmetic
 | 
			
		||||
* `751e372` bug
 | 
			
		||||
* `c5e1536` support de la définition des aliases et des profils dans les répertoires de cluster
 | 
			
		||||
* `14beb13` dk: support minimal maven
 | 
			
		||||
* `f474657` dk: ajout de COMPOSER_ARGS
 | 
			
		||||
* `1097975` cosmetic
 | 
			
		||||
* `bb7a4fc` foreach: ajout de l'option -S
 | 
			
		||||
* `e0e6178` dk: support de la sélection d'un service et de la machine sur laquelle tourne un service
 | 
			
		||||
* `07bea2c` cx-conndev: support klean
 | 
			
		||||
* `7254661` dk: support du nommage du répertoire pour le checkout
 | 
			
		||||
* `fb285e0` ne vérifier conndev.php que si c'est nécessaire
 | 
			
		||||
 | 
			
		||||
## Version 9.8.0 du 28/04/2020-16:42
 | 
			
		||||
 | 
			
		||||
* `e2b2f49` dk: vérifier que le répertoire destination existe avant rsync
 | 
			
		||||
* `c147a0c` dk: possibilité de spécifier les options de rsync
 | 
			
		||||
 | 
			
		||||
## Version 9.7.0 du 17/04/2020-10:20
 | 
			
		||||
 | 
			
		||||
* `f4f9b69` dk: bug avec la synchro d'un fichier
 | 
			
		||||
* `74190f7` dk: par défaut, les suffixes courants sont supprimés
 | 
			
		||||
* `9fad992` dk: support répertoire/fichier source
 | 
			
		||||
* `1d7e2d0` bug
 | 
			
		||||
* `7268cec` pff: workaround pour certaines erreurs de packaging
 | 
			
		||||
* `aa26966` dk: support build args avec la syntaxe NAME=VALUE
 | 
			
		||||
* `f7b3f90` dk: augmenter la largeur de la colonne node
 | 
			
		||||
* `1c4c1c3` dmctl: l'option -a supporte les répertoires
 | 
			
		||||
* `ccf3c67` dk: aliases de filtres
 | 
			
		||||
* `1b12cee` dk: afficher un warning si le profil n'est pas défini pour une machine
 | 
			
		||||
* `45976f4` dk: sta affiche le statut pour tous les services
 | 
			
		||||
* `1960c0c` dk: implémenter status
 | 
			
		||||
* `4f206d7` dk: frontend plus 'transparent'
 | 
			
		||||
* `d666859` dk: supprimer avec image:tag si possible
 | 
			
		||||
* `4ee346b` maj chemin ip
 | 
			
		||||
* `c9796b2` ipaddr: frontend pour ip addr
 | 
			
		||||
* `668eec1` dmctl: possibilité d'importer toutes les machines d'un répertoire
 | 
			
		||||
 | 
			
		||||
## Version 9.6.0 du 24/02/2020-09:13
 | 
			
		||||
 | 
			
		||||
* `b7492fc` dk: ajout de l'option -e
 | 
			
		||||
* `08c081a` modification pour support des valeurs spéciales (ne sont pas synchronisées) dans LDAP
 | 
			
		||||
* `98129cd` passer par un script annexe pour cssh
 | 
			
		||||
* `99c0ccd` dk: support de PHP_VERSION_MAX
 | 
			
		||||
 | 
			
		||||
## Version 9.5.0 du 28/01/2020-14:06
 | 
			
		||||
 | 
			
		||||
* `640a2b1` maj doc
 | 
			
		||||
 | 
			
		||||
## Version 9.4.4 du 27/01/2020-08:48
 | 
			
		||||
 | 
			
		||||
* `300935c` bug
 | 
			
		||||
 | 
			
		||||
## Version 9.4.3 du 24/01/2020-13:02
 | 
			
		||||
 | 
			
		||||
* `4ba6909` ajouter le support de buster pour la completion
 | 
			
		||||
 | 
			
		||||
## Version 9.4.2 du 24/01/2020-08:52
 | 
			
		||||
 | 
			
		||||
* `fd5b787` dk: bug
 | 
			
		||||
* `ad18983` maj de l'image par défaut
 | 
			
		||||
* `c33ff4c` ajouter le support de buster
 | 
			
		||||
* `247b449` dk: maj doc
 | 
			
		||||
* `28f4d39` dk: support de COMPOSER_PHP
 | 
			
		||||
* `f28df52` maj image composer
 | 
			
		||||
 | 
			
		||||
## Version 9.4.1 du 20/01/2020-14:46
 | 
			
		||||
 | 
			
		||||
* `6f01bac` dk: si la commande est inconnue, la transmettre à docker
 | 
			
		||||
* `175f6ed` cssh: traiter le cas où screen n'est pas disponible
 | 
			
		||||
* `73db728` umail: possibilité de spécifier le type de body
 | 
			
		||||
* `5fc55cc` dk: support des fonctions de nettoyage par profil
 | 
			
		||||
* `21274af` dk: APPS peut avoir une valeur dépendante du profil
 | 
			
		||||
* `f7f8889` support des filtres avec wildcards
 | 
			
		||||
* `747c563` repoctl: divers bugs
 | 
			
		||||
* `4fdd23c` dk: support limité de podman
 | 
			
		||||
* `5457228` dk: support des aliases pour les mappings pff
 | 
			
		||||
* `a55f9c4` dk: ajout de get-profile
 | 
			
		||||
* `ac7efad` dk: possibilité de forcer la suppression des images
 | 
			
		||||
* `5284838` typo
 | 
			
		||||
* `d5c5162` dk: dans build.env, une variable peut en mentionner une autre
 | 
			
		||||
* `f7d036a` repoctl: cosmetic
 | 
			
		||||
* `87b8d5b` Intégration de la branche update-repoctl
 | 
			
		||||
  * `0866bbd` finaliser edit et implémenter get
 | 
			
		||||
  * `8daf4ec` début implémentation edit
 | 
			
		||||
* `ef1c8f2` utiliser dk composer, et ne pas utiliser de container par défaut
 | 
			
		||||
* `269379f` dk: rendre le code overridable
 | 
			
		||||
* `aae3703` bug avec traitement des variables de docker-machine -u
 | 
			
		||||
* `f875093` dk: par défaut, forcer l'utilisation de la machine locale pour dk composer
 | 
			
		||||
* `c202a27` dk: support COMPOSER_SETUP et COMPOSER_CMD
 | 
			
		||||
* `921caa1` dk: le shell est lancé en root
 | 
			
		||||
* `ce98445` dk: support de composer shell
 | 
			
		||||
* `2b5ed18` dk: ajouter un frontend pour composer
 | 
			
		||||
* `29c54e7` dmctl: import/export de docker machines
 | 
			
		||||
* `de53bae` Intégration de la branche add-repoctl
 | 
			
		||||
  * `600b824` support limité de pcrone et pclone
 | 
			
		||||
  * `914f635` implémentation initiale de create, list, delete
 | 
			
		||||
  * `a774497` squelette
 | 
			
		||||
* `5a444a6` dk: support pff
 | 
			
		||||
* `425e8a5` dk: maj format ps
 | 
			
		||||
* `52c3d7a` dk: ps, ls et rm prennent des filtres. ajout de pull
 | 
			
		||||
* `d5f8fa4` cx-updatedev: ajout de l'option -g
 | 
			
		||||
* `5fe5137` dk: support de COMPOSER_ACTION et sqlmig NOFIX
 | 
			
		||||
* `74cf35b` typo
 | 
			
		||||
* `0468623` alias pour docer-machine
 | 
			
		||||
* `3dfe542` dk: support de scripts génériques
 | 
			
		||||
* `488a257` délai pour éviter les maj intempestives d'eclipse
 | 
			
		||||
* `13ce5b8` dk: tagger aussi avec la distribution
 | 
			
		||||
* `d03b04f` dk: ajouter automatiquement le suffixe -$DIST à la version
 | 
			
		||||
* `6879491` maj doc
 | 
			
		||||
* `7fad363` cssh: compat avec les vieilles versionsd de linux
 | 
			
		||||
* `f65dda6` bug
 | 
			
		||||
* `bc7eebc` ajouter --with-registry-auth à dk update
 | 
			
		||||
* `8af50f4` nettoyage de logs webobjects
 | 
			
		||||
* `458ccd3` dk: support de certaines options pour dk run
 | 
			
		||||
* `c97bc6a` dk: support de la commande run
 | 
			
		||||
* `ae70f66` synchro des dépendances uniquement pour le type composer
 | 
			
		||||
* `f508dae` support des mises à jour en mode devel
 | 
			
		||||
* `60a4c73` cx-conndev: ajouter l'option -d
 | 
			
		||||
* `85ac283` cx-conndev: renommer l'option en --mysql-cmd
 | 
			
		||||
* `80db462` cx-conndev: ajout de l'option --cmd
 | 
			
		||||
* `4400ba7` ajout de ensure-vip
 | 
			
		||||
* `ae7ffeb` cx-updatedev: remplacer --ru par -w, --ud, --ur en fonction des besoins
 | 
			
		||||
* `9bfd515` dk -c est auto-complete friendly
 | 
			
		||||
* `a5a41d9` dk: support de fichiers compose non défaut
 | 
			
		||||
* `7e5859e` bug
 | 
			
		||||
* `b342960` bug
 | 
			
		||||
* `c44d1d3` dk: par défaut, ne pas ajouter le profil au nom de projet
 | 
			
		||||
* `aa4eb4a` cx-updatedev: ajout des mises à jour récursives
 | 
			
		||||
 | 
			
		||||
## Version 9.4.0 du 05/06/2019-10:15
 | 
			
		||||
 | 
			
		||||
* `fb96852` Intégration de la branche dk-deploy
 | 
			
		||||
  * `386fc0d` implémenter service, update, scale
 | 
			
		||||
  * `c2f43e6` optimiser l'utilisation de docker-machine
 | 
			
		||||
  * `8cb3b2f` ajouter la commande deploy
 | 
			
		||||
* `5967541` cx-updatedev: ajouter l'option -j
 | 
			
		||||
* `d79e218` dk: support de push pour docker-compose
 | 
			
		||||
* `ccbfff4` dk: simplifier la gestion du nommage des services
 | 
			
		||||
* `50dee34` dk: support de build d'un service en particulier
 | 
			
		||||
* `99d5069` bug
 | 
			
		||||
* `a825f3b` bug
 | 
			
		||||
* `8c143e1` foreach: ajout de --cc
 | 
			
		||||
* `7e26ae1` foreach: ajout des raccourcis -G et -C
 | 
			
		||||
* `cbb34ec` cx-conndev: afficher les erreurs
 | 
			
		||||
* `7524a28` cosmetic
 | 
			
		||||
* `9b03dcd` cx-updatedev: ajout de -i et -u
 | 
			
		||||
* `c7eca6a` cx-updatedev: ajout des options -l et -c
 | 
			
		||||
* `8b4067a` bug
 | 
			
		||||
* `3971dca` scripts pour gérer projets composer
 | 
			
		||||
* `c66eee1` scripts pour gérer projets composer
 | 
			
		||||
* `7c135fa` fconv, fnconv: support de sed
 | 
			
		||||
* `72c3512` dk: bug dans la détection du type de projet
 | 
			
		||||
* `0891e89` sqlmig: corriger la lecture des paramètres
 | 
			
		||||
* `d197fc0` sqlmig: support de l'importation directe des fichiers csv
 | 
			
		||||
* `d028c47` dk: maj doc et support d'origine de profil
 | 
			
		||||
* `b068a12` dk: maj doc et support de branche de profil
 | 
			
		||||
* `d7c981d` dk: afficher l'adresse ip
 | 
			
		||||
* `7ec5381` dk: renommer service en systemd-unit
 | 
			
		||||
 | 
			
		||||
## Version 9.3.0 du 02/04/2019-16:03
 | 
			
		||||
 | 
			
		||||
* `6a03853` ajout de update-apps en natif
 | 
			
		||||
* `6462bec` dk: ajouter exec, maj doc
 | 
			
		||||
* `7a728a9` dk: stop, logs et down acceptent maintenant un argument
 | 
			
		||||
* `df788f6` support mariadb
 | 
			
		||||
* `edaaec1` bug
 | 
			
		||||
* `41089f7` dk: ajout de l'action bs
 | 
			
		||||
* `af2b74f` sqlmig: init crée aussi 02grants.sql
 | 
			
		||||
 | 
			
		||||
## Version 9.2.0 du 08/12/2018-11:58
 | 
			
		||||
 | 
			
		||||
* `71bb5aa` bug
 | 
			
		||||
* `44b1954` dk: s'assurer que docker-compose et docker existent quand on crée le service
 | 
			
		||||
* `d70825c` dk: bug dans la définition du service
 | 
			
		||||
* `45d912d` EnsureVM: être en mode shared par défaut
 | 
			
		||||
* `3292686` EnsureVM: ne plus chercher à décharger les modules par défaut
 | 
			
		||||
 | 
			
		||||
## Version 9.1.0 du 22/11/2018-15:40
 | 
			
		||||
 | 
			
		||||
* `ba29496` dk: génération d'un service systemd
 | 
			
		||||
* `f72dd86` option -n pour pcrone le clone pas le dépôt nouvellement créé
 | 
			
		||||
* `01325d0` sqlmig: support chemin config/sqlmig et bug avec csv_null
 | 
			
		||||
* `45da726` dk: ajout de l'option --fake pour afficher les commandes
 | 
			
		||||
* `dcb637e` dk: support de --no-cache pour docker-compose build
 | 
			
		||||
* `9c6f606` Intégration de la branche update-pcrone
 | 
			
		||||
  * `764dd53` maj prefixe et meilleur affichage des erreurs
 | 
			
		||||
* `307fa48` dk: option -j pour désactiver le cache
 | 
			
		||||
* `45c6422` profils pour docker-machine
 | 
			
		||||
* `a9004fa` dk: PROFILE est exporté
 | 
			
		||||
 | 
			
		||||
## Version 9.0.0 du 15/11/2018-09:40
 | 
			
		||||
 | 
			
		||||
* `af969e4` maj de l'url source de nutools
 | 
			
		||||
 | 
			
		||||
## Version 8.3.0 du 15/11/2018-09:32
 | 
			
		||||
 | 
			
		||||
* `7ff32ca` dk brd honore les scripts de build
 | 
			
		||||
* `3293d09` support docker-machine use
 | 
			
		||||
* `e6be47e` ajouter de nouveaux formats pour parse_date
 | 
			
		||||
* `1151b5c` latin1compat gère les points de suspension
 | 
			
		||||
* `2f86786` ajouter le template pour yaml
 | 
			
		||||
 | 
			
		||||
## Version 8.2.0 du 02/11/2018-15:06
 | 
			
		||||
 | 
			
		||||
* `7583ded` Intégration de la branche update-pff
 | 
			
		||||
  * `96c146e` ajout de l'option NOMERGES pour ne pas tenter de fusionner avec git des fichiers binaires
 | 
			
		||||
* `4f7cb90` dk: support de .compose.env pour le nom du projet
 | 
			
		||||
* `9d991e2` pcrone: possibilité de créer des dépôts gogs
 | 
			
		||||
* `e3ba580` dk: corriger push
 | 
			
		||||
* `48c662b` gérer les tags autrement. ajouter push
 | 
			
		||||
* `566f1d7` tailor.py: possibilité de modifier les préréglages par les options
 | 
			
		||||
* `f34b63a` bug
 | 
			
		||||
* `2873638` afficher le profil courant
 | 
			
		||||
 | 
			
		||||
## Version 8.1.0 du 28/09/2018-08:39
 | 
			
		||||
 | 
			
		||||
* `e74480c` dk: action build par défaut
 | 
			
		||||
* `56b18a4` dk: rendre overridable VERSION
 | 
			
		||||
* `ed180b5` dk pour faciliter l'utilisation de docker
 | 
			
		||||
* `4ad84c0` sqlmig: ajout de la restauration de la base test à partir d'une copie de la prod
 | 
			
		||||
* `a5be8d8` maj gitignore initial
 | 
			
		||||
* `19267dd` utempl: support du datage automatique des fichiers
 | 
			
		||||
 | 
			
		||||
## Version 8.0.0 du 21/07/2018-10:21
 | 
			
		||||
 | 
			
		||||
* `a60f23a` maj version ulib
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										11
									
								
								EnsureVM
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								EnsureVM
									
									
									
									
									
								
							@ -1,7 +1,7 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
source "$(dirname -- "$0")/lib/ulib/auto" || exit 1
 | 
			
		||||
urequire service
 | 
			
		||||
source "$(dirname "$0")/lib/ulib/ulib" || exit 1
 | 
			
		||||
urequire DEFAULTS service
 | 
			
		||||
 | 
			
		||||
function display_help() {
 | 
			
		||||
    uecho "$scriptname: s'assurer que les services sont lancés pour un type de virtualisation
 | 
			
		||||
@ -17,7 +17,7 @@ function ensure_kvm() {
 | 
			
		||||
    # sont chargés, et que le service libvirt-bin est démarré
 | 
			
		||||
    local module modified
 | 
			
		||||
 | 
			
		||||
    if [ -z "$check_only" -a -n "$exclusive" ]; then
 | 
			
		||||
    if [ -z "$check_only" ]; then
 | 
			
		||||
        # Vérifier que les modules vbox* sont déchargés
 | 
			
		||||
        for module in vboxpci vboxnetadp vboxnetflt vboxdrv; do
 | 
			
		||||
            if lsmod | quietgrep "$module"; then
 | 
			
		||||
@ -82,7 +82,7 @@ function ensure_virtualbox() {
 | 
			
		||||
    # sont chargés, et que le service vboxdrv est démarré
 | 
			
		||||
    local module modified
 | 
			
		||||
 | 
			
		||||
    if [ -z "$check_only" -a -n "$exclusive" ]; then
 | 
			
		||||
    if [ -z "$check_only" ]; then
 | 
			
		||||
        # Vérifier que kvm{,_intel,_amd} ne sont pas chargés
 | 
			
		||||
        for module in kvm_intel kvm_amd kvm; do
 | 
			
		||||
            if lsmod | quietgrep "$module"; then
 | 
			
		||||
@ -117,12 +117,9 @@ function ensure_virtualbox() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
check_only=
 | 
			
		||||
exclusive=
 | 
			
		||||
parse_opts + "${PRETTYOPTS[@]}" \
 | 
			
		||||
    --help '$exit_with display_help' \
 | 
			
		||||
    -c,--check-only,--check check_only=1 \
 | 
			
		||||
    -x,--exclusive exclusive=1 \
 | 
			
		||||
    -s,--shared exclusive= \
 | 
			
		||||
    @ args -- "$@" && set -- "${args[@]}" || die "$args"
 | 
			
		||||
 | 
			
		||||
run_as_root "$@"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										61
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										61
									
								
								README.md
									
									
									
									
									
								
							@ -1,61 +0,0 @@
 | 
			
		||||
# nutools
 | 
			
		||||
 | 
			
		||||
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](doc/ulib.md))
 | 
			
		||||
et une librairie de modules python réutilisables (pyulib)
 | 
			
		||||
 | 
			
		||||
## Installation
 | 
			
		||||
 | 
			
		||||
~~~sh
 | 
			
		||||
git clone https://git.univ-reunion.fr/modules/nutools
 | 
			
		||||
git checkout develop
 | 
			
		||||
cd nutools
 | 
			
		||||
./uinst -y
 | 
			
		||||
~~~
 | 
			
		||||
 | 
			
		||||
Dans l'exemple ci-dessous, on installe la branche develop, pour avoir toujours
 | 
			
		||||
la dernière version des outils.
 | 
			
		||||
 | 
			
		||||
Pour mettre à jour, il suffit de mettre à jour le dépôt et de relancer
 | 
			
		||||
l'installation
 | 
			
		||||
~~~sh
 | 
			
		||||
cd nutools
 | 
			
		||||
git pull
 | 
			
		||||
./uinst -y
 | 
			
		||||
~~~
 | 
			
		||||
 | 
			
		||||
Alternative, il est possible de demander à nutools à se mettre à jour avec la
 | 
			
		||||
dernière version
 | 
			
		||||
~~~sh
 | 
			
		||||
update-nutools --develop
 | 
			
		||||
~~~
 | 
			
		||||
 | 
			
		||||
## 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](doc/tools/uinst): Déploiement local
 | 
			
		||||
    * [mkusfx](doc/tools/mkusfx): Faire une archive auto-installable avec uinst
 | 
			
		||||
    * [ruinst](doc/tools/ruinst): Déploiement distant avec uinst
 | 
			
		||||
    * [runs](doc/tools/runs): Lancer un script avec le protocole RUNS
 | 
			
		||||
    * [rruns](doc/tools/rruns): Déploiement distant avec runs
 | 
			
		||||
* Librairie réutilisable de scripts shell
 | 
			
		||||
    * [uinc](doc/tools/uinc): Dépliage des inclusions dans un fichier
 | 
			
		||||
    * [ulibsync](doc/tools/ulibsync): Faire une copie locale pour un projet de ulib et/ou pyulib
 | 
			
		||||
* Autres outils
 | 
			
		||||
    * [udir](doc/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
 | 
			
		||||
							
								
								
									
										4
									
								
								SKvm
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								SKvm
									
									
									
									
									
								
							@ -1,7 +1,7 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
source "$(dirname -- "$0")/lib/ulib/auto" || exit 1
 | 
			
		||||
urequire virsh
 | 
			
		||||
source "$(dirname "$0")/lib/ulib/ulib" || exit 1
 | 
			
		||||
urequire DEFAULTS virsh
 | 
			
		||||
 | 
			
		||||
function display_help() {
 | 
			
		||||
    uecho "$scriptname: lancer une machine virtuelle kvm
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,7 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
source "$(dirname -- "$0")/lib/ulib/auto" || exit 1
 | 
			
		||||
source "$(dirname "$0")/lib/ulib/ulib" || exit 1
 | 
			
		||||
urequire DEFAULTS
 | 
			
		||||
 | 
			
		||||
function display_help() {
 | 
			
		||||
    uecho "$scriptname: lancer une machine virtuelle VirtualBox
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										86
									
								
								Sscreen
									
									
									
									
									
								
							
							
						
						
									
										86
									
								
								Sscreen
									
									
									
									
									
								
							@ -1,86 +0,0 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
 | 
			
		||||
# désactiver le verrouillage
 | 
			
		||||
export LOCKPRG=/bin/true
 | 
			
		||||
 | 
			
		||||
COULEUR_NORMALE=$'\e[0m'
 | 
			
		||||
COULEUR_ROUGE=$'\e[31;1m'
 | 
			
		||||
COULEUR_VERTE=$'\e[32;1m'
 | 
			
		||||
COULEUR_JAUNE=$'\e[33;1m'
 | 
			
		||||
COULEUR_BLEUE=$'\e[34;1m'
 | 
			
		||||
COULEUR_BLANCHE=$'\e[37;1m'
 | 
			
		||||
 | 
			
		||||
function __ask() {
 | 
			
		||||
    local r
 | 
			
		||||
    read -p "$1" -t 2 r
 | 
			
		||||
    [ $? -gt 128 -o -z "$r" -o "$r" == "o" -o "$r" == "O" -o "$r" == "y" -o "$r" == "Y" ]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function __auto_screen() {
 | 
			
		||||
    # Si on est déjà dans screen, ne rien faire
 | 
			
		||||
    [ -z "$STY" ] || return
 | 
			
		||||
 | 
			
		||||
    # Si screen pas installé, ne rien faire
 | 
			
		||||
    local dir screen="$(which screen 2>/dev/null)"
 | 
			
		||||
    if [ -z "$screen" ]; then
 | 
			
		||||
        for dir in /usr/local/bin /opt/bin /usr/bin /bin; do
 | 
			
		||||
            if [ -x "$dir/screen" ]; then
 | 
			
		||||
                screen="$dir/screen"
 | 
			
		||||
                PATH="$PATH:$dir"
 | 
			
		||||
                break
 | 
			
		||||
            fi
 | 
			
		||||
        done
 | 
			
		||||
    fi
 | 
			
		||||
    if [ -z "$screen" ]; then
 | 
			
		||||
        echo "${COULEUR_JAUNE}WARNING${COULEUR_NORMALE} screen introuvable. une session bash classique sera lancée"
 | 
			
		||||
        exec /bin/bash -l
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    # corriger TERM pour les vieilles versions de Linux
 | 
			
		||||
    case "$TERM" in
 | 
			
		||||
    xterm*) TERM=xterm;;
 | 
			
		||||
    screen*) TERM=screen;;
 | 
			
		||||
    esac
 | 
			
		||||
    export TERM
 | 
			
		||||
 | 
			
		||||
    local msgprefix
 | 
			
		||||
    local screens count
 | 
			
		||||
    local session_name="nutools-$USER"
 | 
			
		||||
 | 
			
		||||
    screens="$(LANG=C screen -ls | grep -Ei "${session_name}.*attached|detached")"
 | 
			
		||||
    if [ -n "$screens" ]; then
 | 
			
		||||
        count="$(echo "$screens" | wc -l)"
 | 
			
		||||
    else
 | 
			
		||||
        count=0
 | 
			
		||||
    fi
 | 
			
		||||
    if [ $count -gt 0 ]; then
 | 
			
		||||
        if [ $count -eq 1 ]; then
 | 
			
		||||
            msgprefix="Il y a ${COULEUR_BLEUE}1 session screen en cours${COULEUR_NORMALE}
 | 
			
		||||
Cette session"
 | 
			
		||||
        else
 | 
			
		||||
            msgprefix="Il y a ${COULEUR_ROUGE}$count sessions screen en cours${COULEUR_NORMALE}:
 | 
			
		||||
$screens
 | 
			
		||||
La première session"
 | 
			
		||||
        fi
 | 
			
		||||
        if __ask "
 | 
			
		||||
$msgprefix sera reconnectée automatiquent dans 2 secondes
 | 
			
		||||
Voulez-vous reconnecter la session screen? [On] "; then
 | 
			
		||||
            exec screen -q -s -/bin/bash -xRR -S "$session_name"
 | 
			
		||||
        else
 | 
			
		||||
            exec /bin/bash -l
 | 
			
		||||
        fi
 | 
			
		||||
    elif __ask "
 | 
			
		||||
Une ${COULEUR_VERTE}nouvelle session screen${COULEUR_NORMALE} sera lancée automatiquement dans 2 secondes
 | 
			
		||||
Voulez-vous lancer une session screen? [On] "; then
 | 
			
		||||
        exec screen -q -s -/bin/bash -RR -S "$session_name"
 | 
			
		||||
    else
 | 
			
		||||
        exec /bin/bash -l
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
if [ $# -gt 0 ]; then
 | 
			
		||||
    # lancer les commandes fournies avant de lancer SCREEN
 | 
			
		||||
    "$@"
 | 
			
		||||
fi
 | 
			
		||||
__auto_screen
 | 
			
		||||
							
								
								
									
										22
									
								
								TODO.md
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								TODO.md
									
									
									
									
									
								
							@ -1,25 +1,3 @@
 | 
			
		||||
# TODO
 | 
			
		||||
 | 
			
		||||
dkbuild
 | 
			
		||||
* setversion peut prendre la version depuis la branche git d'un dépôt
 | 
			
		||||
  * un argument permettrait de spécifier comment la version est calculée à
 | 
			
		||||
    partir du dépôt
 | 
			
		||||
* si cela a du sens, une commande setlatest qui permet de désigner quelle
 | 
			
		||||
  distribution/version est la dernière
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
git push
 | 
			
		||||
* ajouter le support pour le mode DEBUG
 | 
			
		||||
  ~~~
 | 
			
		||||
  export GIT_TRACE=1
 | 
			
		||||
  export GIT_TRANSFER_TRACE=1
 | 
			
		||||
  export GIT_CURL_VERBOSE=1
 | 
			
		||||
  ~~~
 | 
			
		||||
* ajouter le support http basique pour git lfs en cas de problème pour upload de certains fichiers
 | 
			
		||||
  ~~~
 | 
			
		||||
  git config --add lfs.basictransfersonly true
 | 
			
		||||
  ~~~
 | 
			
		||||
  ou le mettre dans un fichier .lfsconfig
 | 
			
		||||
  cf https://github.com/git-lfs/git-lfs/blob/main/docs/man/git-lfs-config.adoc
 | 
			
		||||
 | 
			
		||||
-*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary
 | 
			
		||||
@ -1 +1 @@
 | 
			
		||||
11.4.0
 | 
			
		||||
8.0.0
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2
									
								
								_root
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								_root
									
									
									
									
									
								
							@ -1,6 +1,6 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
source "$(dirname -- "$0")/lib/ulib/ulib" || exit 1
 | 
			
		||||
source "$(dirname "$0")/lib/ulib/ulib" || exit 1
 | 
			
		||||
urequire base
 | 
			
		||||
 | 
			
		||||
function display_help() {
 | 
			
		||||
 | 
			
		||||
@ -1,7 +1,7 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
source "$(dirname -- "$0")/lib/ulib/auto" || exit 1
 | 
			
		||||
urequire template apache.tools
 | 
			
		||||
source "$(dirname "$0")/lib/ulib/ulib" || exit 1
 | 
			
		||||
urequire DEFAULTS template apache.tools
 | 
			
		||||
apacheconfig_initvars
 | 
			
		||||
 | 
			
		||||
function display_help() {
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										18
									
								
								authftp
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								authftp
									
									
									
									
									
								
							@ -1,6 +1,7 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
source "$(dirname -- "$0")/lib/ulib/auto" || exit 1
 | 
			
		||||
source "$(dirname "$0")/lib/ulib/ulib" || exit 1
 | 
			
		||||
urequire DEFAULTS
 | 
			
		||||
 | 
			
		||||
function display_help() {
 | 
			
		||||
    uecho "$scriptname: Se connecter sur un site FTP authentifié
 | 
			
		||||
@ -39,14 +40,6 @@ 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 @"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function hostkeyfailed_apropos() {
 | 
			
		||||
    eecho "\
 | 
			
		||||
------------------------------------------------------------------------------------
 | 
			
		||||
Si le message 'Host key verification failed' apparait, lancer la commande suivante:
 | 
			
		||||
    ssh -o StrictHostKeyChecking=no -o BatchMode=yes $1
 | 
			
		||||
------------------------------------------------------------------------------------"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
AUTHFTP_PROXY_DISABLED=1 # par défaut, ne pas utiliser le proxy
 | 
			
		||||
set_defaults proxy
 | 
			
		||||
set_defaults authftp
 | 
			
		||||
@ -83,22 +76,19 @@ read_value -i "Entrez le chemin" path "$4" N
 | 
			
		||||
 | 
			
		||||
if [ -n "$lftp" ]; then
 | 
			
		||||
    if [ -n "$noproxy" ]; then
 | 
			
		||||
        export LFTP_PASSWORD="$password"
 | 
			
		||||
        if [ -n "$sftp" ]; then
 | 
			
		||||
            url="sftp://$host/$path"
 | 
			
		||||
            hostkeyfailed_apropos "$login@$host"
 | 
			
		||||
        else
 | 
			
		||||
            url="ftp://$host/$path"
 | 
			
		||||
        fi
 | 
			
		||||
        exec lftp "${options[@]}" -e "\
 | 
			
		||||
set ssl:verify-certificate $verify_certificate
 | 
			
		||||
open -u $login --env-password $url"
 | 
			
		||||
open -u $login,$password $url"
 | 
			
		||||
    else
 | 
			
		||||
        export LFTP_PASSWORD="${password}@${my_password}"
 | 
			
		||||
        url="ftp://$AUTHFTP_PROXY_HOST/$path"
 | 
			
		||||
        exec lftp "${options[@]}" -e "\
 | 
			
		||||
set ssl:verify-certificate $verify_certificate
 | 
			
		||||
open -u ${login}@${my_login}@${host} --env-password $url"
 | 
			
		||||
open -u ${login}@${my_login}@${host},${password}@${my_password} $url"
 | 
			
		||||
    fi
 | 
			
		||||
else
 | 
			
		||||
    if [ -n "$noproxy" ]; then
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										3
									
								
								caturl
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								caturl
									
									
									
									
									
								
							@ -1,6 +1,7 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
source "$(dirname -- "$0")/lib/ulib/auto" || exit 1
 | 
			
		||||
source "$(dirname "$0")/lib/ulib/ulib" || exit 1
 | 
			
		||||
urequire DEFAULTS
 | 
			
		||||
 | 
			
		||||
function display_help() {
 | 
			
		||||
    uecho "$scriptname: Afficher une url
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
#!/usr/bin/env python2
 | 
			
		||||
#!/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"""
 | 
			
		||||
 | 
			
		||||
@ -411,7 +411,7 @@ javac* | jikes*)
 | 
			
		||||
    fi
 | 
			
		||||
    [[ ! -z "${execute:="${compilerDir}java -cp $cacheDir${classPath:+:$classPath} $mainClass"}" ]]
 | 
			
		||||
    # Prepare to tell javac to compile for the latest language version it supports
 | 
			
		||||
    sourceVersion="-source $(${compilerDir}java -version 2>&1 | sed -n '1{s/.*"\(.*\)".*/\1/; s/^1\.//; s/\..*//; p}')"
 | 
			
		||||
    sourceVersion="-source $(${compilerDir}java -version 2>&1 | sed -n '1s,[^"]*"\([1-9][1-9]*\.[1-9][1-9]*\).*,\1,p')"
 | 
			
		||||
    ;;
 | 
			
		||||
  jikes*)
 | 
			
		||||
    if [[ -z "$classPath" && -z "$compilerArgs" && -z "$CLASSPATH" ]] ; then
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,7 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
source "$(dirname -- "$0")/lib/ulib/auto" || exit 1
 | 
			
		||||
source "$(dirname "$0")/lib/ulib/ulib" || exit 1
 | 
			
		||||
urequire DEFAULTS
 | 
			
		||||
 | 
			
		||||
function display_help() {
 | 
			
		||||
    uecho "$scriptname: créer un utilisateur sudoer et lui installer une clé publique ssh
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										65
									
								
								cssh
									
									
									
									
									
								
							
							
						
						
									
										65
									
								
								cssh
									
									
									
									
									
								
							@ -1,6 +1,7 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
source "$(dirname -- "$0")/lib/ulib/auto" || exit 1
 | 
			
		||||
source "$(dirname "$0")/lib/ulib/ulib" || exit 1
 | 
			
		||||
urequire DEFAULTS
 | 
			
		||||
 | 
			
		||||
function display_help() {
 | 
			
		||||
    uecho "$scriptname: Faire une connexion ssh en lançant automatiquement un screen sur l'hôte distant
 | 
			
		||||
@ -22,19 +23,55 @@ vars="$("$scriptdir/ussh" --parse "$@")" || die
 | 
			
		||||
eval "$vars"
 | 
			
		||||
[ "${#hosts[*]}" -gt 0 ] || die "Vous devez spécifier l'hôte sur lequel se connecter"
 | 
			
		||||
 | 
			
		||||
[ ${#args[*]} -gt 0 ] && cmd="$(qvals "${args[@]}"); " || cmd=
 | 
			
		||||
cmd="$cmd
 | 
			
		||||
export LOCKPRG=/bin/true; $(<"$scriptdir/Sscreen")"
 | 
			
		||||
cmd="'${cmd//\'/\'\\\'\'}'"
 | 
			
		||||
cmd="'$(qvals "${args[@]}")
 | 
			
		||||
"'
 | 
			
		||||
function __ask() {
 | 
			
		||||
    local r
 | 
			
		||||
    read -p "$1" -t 2 r
 | 
			
		||||
    [ $? -gt 128 -o -z "$r" -o "$r" == "o" -o "$r" == "O" -o "$r" == "y" -o "$r" == "Y" ]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function __auto_screen() {
 | 
			
		||||
    # Si on est déjà dans screen, ne rien faire
 | 
			
		||||
    [ -z "$STY" ] || return
 | 
			
		||||
 | 
			
		||||
    local msgprefix
 | 
			
		||||
    local screens count
 | 
			
		||||
 | 
			
		||||
    screens="$(LANG=C screen -ls | grep -Ei "attached|detached")"
 | 
			
		||||
    if [ -n "$screens" ]; then
 | 
			
		||||
        count="$(echo "$screens" | wc -l)"
 | 
			
		||||
    else
 | 
			
		||||
        count=0
 | 
			
		||||
    fi
 | 
			
		||||
    if [ $count -gt 0 ]; then
 | 
			
		||||
        if [ $count -eq 1 ]; then
 | 
			
		||||
            msgprefix="Il y a '"$COULEUR_BLEUE"'1 session screen en cours'"$COULEUR_NORMALE"'
 | 
			
		||||
Cette session"
 | 
			
		||||
        else
 | 
			
		||||
            msgprefix="Il y a '"$COULEUR_ROUGE"'$count sessions screen en cours'"$COULEUR_NORMALE"':
 | 
			
		||||
$screens
 | 
			
		||||
La première session"
 | 
			
		||||
        fi
 | 
			
		||||
        if __ask "
 | 
			
		||||
$msgprefix sera reconnectée automatiquent dans 2 secondes
 | 
			
		||||
Voulez-vous reconnecter la session screen? [On] "; then
 | 
			
		||||
            exec screen -q -s -/bin/bash -xRR
 | 
			
		||||
        else
 | 
			
		||||
            exec /bin/bash -l
 | 
			
		||||
        fi
 | 
			
		||||
    elif __ask "
 | 
			
		||||
Une '"$COULEUR_VERTE"'nouvelle session screen'"$COULEUR_NORMALE"' sera lancée automatiquement dans 2 secondes
 | 
			
		||||
Voulez-vous lancer une session screen? [On] "; then
 | 
			
		||||
        exec screen -q -s -/bin/bash -RR
 | 
			
		||||
    else
 | 
			
		||||
        exec /bin/bash -l
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
__auto_screen
 | 
			
		||||
'\'
 | 
			
		||||
 | 
			
		||||
for host in "${hosts[@]}"; do
 | 
			
		||||
    "$ssh" \
 | 
			
		||||
        "${options[@]}" -qt "$host" -- \
 | 
			
		||||
        "export LOCKPRG=/bin/true; [ -x /usr/local/nutools/Sscreen ] && exec /usr/local/nutools/Sscreen $(qvals "${args[@]}") || exit 123"
 | 
			
		||||
    if [ $? -eq 123 ]; then
 | 
			
		||||
        # pas de Sscreen en face, le faire à la main
 | 
			
		||||
        ${exec:+exec} \
 | 
			
		||||
            "$ssh" "${options[@]}" -t "$host" -- \
 | 
			
		||||
            /bin/bash -c "$cmd"
 | 
			
		||||
    fi
 | 
			
		||||
    ${exec:+exec} "$ssh" "${options[@]}" -t "$host" -- /bin/bash -c "$cmd"
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										124
									
								
								cx-conndev
									
									
									
									
									
								
							
							
						
						
									
										124
									
								
								cx-conndev
									
									
									
									
									
								
							@ -1,124 +0,0 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
source "$(dirname -- "$0")/lib/ulib/auto" || exit 1
 | 
			
		||||
 | 
			
		||||
[ -n "$COMPOSE_V1" ] && DOCKER_COMPOSE=(docker-compose) || DOCKER_COMPOSE=(docker compose)
 | 
			
		||||
 | 
			
		||||
function display_help() {
 | 
			
		||||
    uecho "$scriptname: se connecter à la base MySQL
 | 
			
		||||
 | 
			
		||||
USAGE
 | 
			
		||||
    $scriptname [DATABASE]
 | 
			
		||||
    $scriptname -d [-uUSER [-pPASSWORD]] DATABASES... >backup.sql
 | 
			
		||||
    $scriptname -c [-uUSER [-pPASSWORD]] <backup.sql
 | 
			
		||||
 | 
			
		||||
OPTIONS
 | 
			
		||||
    --compose-v1
 | 
			
		||||
        Forcer l'utilisation de docker-compose v1
 | 
			
		||||
    -h, -s, --service SERVICE
 | 
			
		||||
        Spécifier le nom du service. La valeur par défaut est db
 | 
			
		||||
    -i, --ipnum IPNUM
 | 
			
		||||
        Si le service est dans plusieurs réseaux, sélectionner le numéro du
 | 
			
		||||
        réseau à attaquer en commençant à 1 (la liste sera affichée si cette
 | 
			
		||||
        option n'est pas spécifiée)
 | 
			
		||||
    -c, --mysql-cmd
 | 
			
		||||
        Lancer 'mysql -hSERVICE_IP' avec les arguments supplémentaires fournis
 | 
			
		||||
        sur la ligne de commande
 | 
			
		||||
    -d, --mysqldump-cmd
 | 
			
		||||
        Lancer 'mysqldump --databases --add-drop-database -hSERVICE_IP' avec
 | 
			
		||||
        les arguments supplémentaires fournis sur la ligne de commande
 | 
			
		||||
    -k, --klean
 | 
			
		||||
        Lancer la commande 'klean' dans le container spécifié (supprime toutes
 | 
			
		||||
        les données et relance le container)
 | 
			
		||||
    -u, --user USER
 | 
			
		||||
    -p, --password PASSWORD
 | 
			
		||||
        Paramètres supplémentaires utilisés uniquement avec les options -c et -d"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
service=db
 | 
			
		||||
ipnum=
 | 
			
		||||
mysql_cmd=
 | 
			
		||||
mysqldump_cmd=
 | 
			
		||||
klean=
 | 
			
		||||
user=
 | 
			
		||||
password=
 | 
			
		||||
args=(
 | 
			
		||||
    --help '$exit_with display_help'
 | 
			
		||||
    --compose-v1 '$DOCKER_COMPOSE=(docker-compose)'
 | 
			
		||||
    -h:,-s:,--service: service=
 | 
			
		||||
    -i:,--ipnum: ipnum=
 | 
			
		||||
    -c,--mysql-cmd mysql_cmd=1
 | 
			
		||||
    -d,--mysqldump-cmd mysqldump_cmd=1
 | 
			
		||||
    -k,--klean klean=1
 | 
			
		||||
    -u:,--user: user=
 | 
			
		||||
    -p:,--password: password=
 | 
			
		||||
)
 | 
			
		||||
parse_args "$@"; set -- "${args[@]}"
 | 
			
		||||
 | 
			
		||||
[ -n "$service" ] || die "Vous devez spécifier le nom du service"
 | 
			
		||||
 | 
			
		||||
found=
 | 
			
		||||
first=1
 | 
			
		||||
while true; do
 | 
			
		||||
    if [ -f composer.json ]; then
 | 
			
		||||
        found=1
 | 
			
		||||
        break
 | 
			
		||||
    fi
 | 
			
		||||
    first=
 | 
			
		||||
    cd ..
 | 
			
		||||
    if [ "$(pwd)" == "$HOME" ]; then
 | 
			
		||||
        die "Cette commande ne peut être lancée que depuis un projet Composer"
 | 
			
		||||
    fi
 | 
			
		||||
done
 | 
			
		||||
if [ -z "$first" ]; then
 | 
			
		||||
    enote "Le répertoire du projet est $(ppath . ~)"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
###
 | 
			
		||||
 | 
			
		||||
function die_not_found() { die "$service: service introuvable. vérifiez que le projet est actuellement up"; }
 | 
			
		||||
setx cid="${DOCKER_COMPOSE[@]}" ps -q "$service" 2>/dev/null || die_not_found
 | 
			
		||||
[ -n "$cid" ] || die_not_found
 | 
			
		||||
edebug "$service id: $cid"
 | 
			
		||||
 | 
			
		||||
function die_not_found() { die "$service: $cid: ip introuvable"; }
 | 
			
		||||
setx ip=docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}},{{end}}' "$cid" || die_not_found
 | 
			
		||||
[ -n "$ip" ] || die_not_found
 | 
			
		||||
ipdesc="${ip%,}"
 | 
			
		||||
if [ -z "$ipnum" ] && [[ "$ipdesc" == *,* ]]; then
 | 
			
		||||
    enote "Le service est accessible sur plusieurs adresses ip: $ipdesc"
 | 
			
		||||
    enote "Pensez à spécifier l'option -i pour désigner l'adresse à utiliser (-i1 pour la première, -i2 pour la seconde, etc.)"
 | 
			
		||||
fi
 | 
			
		||||
if [ -n "$ipnum" ]; then
 | 
			
		||||
    let ipnum=ipnum-1
 | 
			
		||||
    while [ $ipnum -gt 0 ]; do
 | 
			
		||||
        ip="${ip#*,}"
 | 
			
		||||
        let ipnum=ipnum-1
 | 
			
		||||
    done
 | 
			
		||||
fi
 | 
			
		||||
ip="${ip%%,*}"
 | 
			
		||||
[ -n "$ip" ] || die_not_found
 | 
			
		||||
edebug "$service ip: $ip"
 | 
			
		||||
 | 
			
		||||
if [ -n "$mysql_cmd" ]; then
 | 
			
		||||
    mysql -h"$ip" ${user:+-u"$user"} ${password:+-p"$password"} "$@"
 | 
			
		||||
 | 
			
		||||
elif [ -n "$mysqldump_cmd" ]; then
 | 
			
		||||
    mysqldump --databases --add-drop-database -h"$ip" ${user:+-u"$user"} ${password:+-p"$password"} "$@"
 | 
			
		||||
 | 
			
		||||
elif [ -n "$klean" ]; then
 | 
			
		||||
    estep "klean"
 | 
			
		||||
    docker exec "$cid" klean
 | 
			
		||||
    estep "wait 10sec..."
 | 
			
		||||
    sleep 10
 | 
			
		||||
    estep "start"
 | 
			
		||||
    "${DOCKER_COMPOSE[@]}" start "$service"
 | 
			
		||||
 | 
			
		||||
else
 | 
			
		||||
    [ -f bin/conndev.php ] || die "Impossible de trouver le script compagnon conndev.php"
 | 
			
		||||
 | 
			
		||||
    mysql_cmd="$(php bin/conndev.php "$ip" "$@")"
 | 
			
		||||
    edebug "mysql_cmd: $mysql_cmd"
 | 
			
		||||
 | 
			
		||||
    eval "$mysql_cmd"
 | 
			
		||||
fi
 | 
			
		||||
							
								
								
									
										60
									
								
								cx-shelldev
									
									
									
									
									
								
							
							
						
						
									
										60
									
								
								cx-shelldev
									
									
									
									
									
								
							@ -1,60 +0,0 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
source "$(dirname -- "$0")/lib/ulib/auto" || exit 1
 | 
			
		||||
 | 
			
		||||
[ -n "$COMPOSE_V1" ] && DOCKER_COMPOSE=(docker-compose) || DOCKER_COMPOSE=(docker compose)
 | 
			
		||||
 | 
			
		||||
function display_help() {
 | 
			
		||||
    uecho "$scriptname: ouvrir un shell dans le container
 | 
			
		||||
 | 
			
		||||
USAGE
 | 
			
		||||
    $scriptname [CMD...]
 | 
			
		||||
 | 
			
		||||
OPTIONS
 | 
			
		||||
    --compose-v1
 | 
			
		||||
        Forcer l'utilisation de docker-compose v1
 | 
			
		||||
    -h, -s, --service SERVICE
 | 
			
		||||
        Spécifier le nom du service sur lequel ouvrir le shell
 | 
			
		||||
    -d, --db
 | 
			
		||||
        équivalent à -s db
 | 
			
		||||
    -w, --web
 | 
			
		||||
        équivalent à -s web (c'est la valeur par défaut)"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
service=web
 | 
			
		||||
args=(
 | 
			
		||||
    --help '$exit_with display_help'
 | 
			
		||||
    --compose-v1 '$DOCKER_COMPOSE=(docker-compose)'
 | 
			
		||||
    -h:,-s:,--service: service=
 | 
			
		||||
    -d,--db service=db
 | 
			
		||||
    -w,--web service=web
 | 
			
		||||
)
 | 
			
		||||
parse_args "$@"; set -- "${args[@]}"
 | 
			
		||||
 | 
			
		||||
[ -n "$service" ] || die "Vous devez spécifier le nom du service"
 | 
			
		||||
 | 
			
		||||
found=
 | 
			
		||||
first=1
 | 
			
		||||
while true; do
 | 
			
		||||
    if [ -f composer.json ]; then
 | 
			
		||||
        found=1
 | 
			
		||||
        break
 | 
			
		||||
    fi
 | 
			
		||||
    first=
 | 
			
		||||
    cd ..
 | 
			
		||||
    if [ "$(pwd)" == "$HOME" ]; then
 | 
			
		||||
        die "Cette commande ne peut être lancée que depuis un projet Composer"
 | 
			
		||||
    fi
 | 
			
		||||
done
 | 
			
		||||
if [ -z "$first" ]; then
 | 
			
		||||
    enote "Le répertoire du projet est $(ppath . ~)"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
###
 | 
			
		||||
 | 
			
		||||
setx cid="${DOCKER_COMPOSE[@]}" ps -q "$service" 2>/dev/null || die "$service: service introuvable"
 | 
			
		||||
 | 
			
		||||
cmd=("$@")
 | 
			
		||||
[ ${#cmd[*]} -gt 0 ] || cmd=(bash)
 | 
			
		||||
 | 
			
		||||
"${DOCKER_COMPOSE[@]}" exec "$service" "${cmd[@]}"
 | 
			
		||||
							
								
								
									
										282
									
								
								cx-updatedev
									
									
									
									
									
								
							
							
						
						
									
										282
									
								
								cx-updatedev
									
									
									
									
									
								
							@ -1,282 +0,0 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
source "$(dirname -- "$0")/lib/ulib/auto" || exit 1
 | 
			
		||||
 | 
			
		||||
function display_help() {
 | 
			
		||||
    uecho "$scriptname: mettre à jour un module ur/* ou lib/* sans utiliser composer
 | 
			
		||||
 | 
			
		||||
ça permet de faire du développement plus rapidement sans utiliser les dépôts de
 | 
			
		||||
type path
 | 
			
		||||
 | 
			
		||||
USAGE
 | 
			
		||||
    $scriptname modules...
 | 
			
		||||
 | 
			
		||||
OPTIONS
 | 
			
		||||
    -n, --fake
 | 
			
		||||
        Afficher simplement ce qui serait fait
 | 
			
		||||
    -q, --quiet
 | 
			
		||||
        Ne pas lancer rsync en mode verbose
 | 
			
		||||
    -g, --no-wait
 | 
			
		||||
        Ne pas attendre avant de faire git commit
 | 
			
		||||
    --rsync
 | 
			
		||||
        Mettre à jour les répertoires dans vendor/ qui ne sont pas des liens
 | 
			
		||||
        symboliques à partir des projets dépendants correspondants. Les liens
 | 
			
		||||
        symboliques créés avec --link sont ignorés. C'est l'option par défaut.
 | 
			
		||||
    -l, --link
 | 
			
		||||
        Transformer les clones de dépôts dans vendor/ en liens symboliques vers
 | 
			
		||||
        les projets dépendants correpondants.
 | 
			
		||||
    -k, --copy
 | 
			
		||||
        Transformer les liens symboliques dans vendor/ en copies des projets
 | 
			
		||||
        dépendants correspondants. Les répertoires qui ne sont pas des liens
 | 
			
		||||
        symboliques sont ignorés.
 | 
			
		||||
        Cette option peut être considérée comme le contraire de --link
 | 
			
		||||
    -i, --install
 | 
			
		||||
        Supprimer les répertoires des projets dépendants dans vendor/, qu'il
 | 
			
		||||
        s'agisse de liens symboliques ou de répertoires normaux, puis les faire
 | 
			
		||||
        recréer par 'composer i'
 | 
			
		||||
        Celà permet de ramener le projet à l'état original.
 | 
			
		||||
    -j, --reinstall-link
 | 
			
		||||
        Supprimer les répertoires des projets dépendants dans vendor/ s'il
 | 
			
		||||
        s'agit de liens symboliques, puis les faire recréer par 'composer i'
 | 
			
		||||
        Cette variante est plus rapide que --install puisqu'on ne cherche pas à
 | 
			
		||||
        tout recréer.
 | 
			
		||||
    -u, --update
 | 
			
		||||
        Supprimer les répertoires des projets dépendants dans vendor/, qu'il
 | 
			
		||||
        s'agisse de liens symboliques ou de répertoires normaux, puis les faire
 | 
			
		||||
        recréer par 'composer u'
 | 
			
		||||
        Celà permet de mettre à jour le projet sans les erreurs qui résultent
 | 
			
		||||
        des modifications faites par les autres actions.
 | 
			
		||||
    -w, --update-commit
 | 
			
		||||
        Mettre à jour le projet avec --update puis enregistrer les modifications
 | 
			
		||||
        éventuelles dans git
 | 
			
		||||
    --ud, --update-deps
 | 
			
		||||
        Mettre à jour les projets dépendants avec --update-commit avant de
 | 
			
		||||
        mettre à jour le projet courant.
 | 
			
		||||
    --ur, --update-recursive
 | 
			
		||||
        Mettre à jour de façon récursive tous les projets dépendants.
 | 
			
		||||
        NB: les modifications dans les projets dépendants seront automatiquement
 | 
			
		||||
        enregistrées dans git."
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
fake=
 | 
			
		||||
verbose=1
 | 
			
		||||
nowait=
 | 
			
		||||
action=rsync
 | 
			
		||||
args=(
 | 
			
		||||
    --help '$exit_with display_help'
 | 
			
		||||
    -d:,--project-dir: projdir=
 | 
			
		||||
    -n,--fake fake=1
 | 
			
		||||
    -q,--quiet verbose=
 | 
			
		||||
    -g,--no-wait nowait=1
 | 
			
		||||
    -l,--link action=link
 | 
			
		||||
    -k,--copy action=copy
 | 
			
		||||
    -i,--install action=install
 | 
			
		||||
    -j,--reinstall-link action=reinstall-link
 | 
			
		||||
    -u,--update action=update
 | 
			
		||||
    -w,--update-commit action=update-commit
 | 
			
		||||
    --ud,--update-deps action=update-deps
 | 
			
		||||
    --ur,--update-recursive action=update-recursive
 | 
			
		||||
)
 | 
			
		||||
parse_args "$@"; set -- "${args[@]}"
 | 
			
		||||
 | 
			
		||||
if [ -d "$projdir" ]; then
 | 
			
		||||
    cd "$projdir"
 | 
			
		||||
elif [ -e "$projdir" ]; then
 | 
			
		||||
    die "$projdir: répertoire introuvable"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
found=
 | 
			
		||||
first=1
 | 
			
		||||
while true; do
 | 
			
		||||
    if [ -f composer.json ]; then
 | 
			
		||||
        found=1
 | 
			
		||||
        break
 | 
			
		||||
    fi
 | 
			
		||||
    first=
 | 
			
		||||
    cd ..
 | 
			
		||||
    if [ "$(pwd)" == "$HOME" ]; then
 | 
			
		||||
        die "Cette commande ne peut être lancée que depuis un projet Composer"
 | 
			
		||||
    fi
 | 
			
		||||
done
 | 
			
		||||
if [ -z "$first" ]; then
 | 
			
		||||
    enote "Le répertoire du projet est $(ppath . ~)"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ "$action" == update-deps -o "$action" == update-recursive ]; then
 | 
			
		||||
    # avec update-deps et update-recursive, tous les modules doivent être
 | 
			
		||||
    # considérés
 | 
			
		||||
    set --
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
###
 | 
			
		||||
 | 
			
		||||
if [ $# -eq 0 ]; then
 | 
			
		||||
    setx -a ms=list_dirs vendor "ur/*" "lib/*"
 | 
			
		||||
    set -- "${ms[@]}"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
function check_module() {
 | 
			
		||||
    [ -d "../$m" ] || die "$m: module introuvable"
 | 
			
		||||
}
 | 
			
		||||
function update_with_rsync() {
 | 
			
		||||
    local -a rsync_args
 | 
			
		||||
    rsync_args=(
 | 
			
		||||
        -a ${fake:+-n} ${verbose:+-v}
 | 
			
		||||
        --delete
 | 
			
		||||
        -f "- /.git/"
 | 
			
		||||
        -f "- /vendor/"
 | 
			
		||||
        "../$m/" "vendor/$p"
 | 
			
		||||
    )
 | 
			
		||||
    rsync "${rsync_args[@]}"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
deps=()
 | 
			
		||||
modules=()
 | 
			
		||||
for m in "$@"; do
 | 
			
		||||
    m="${m#vendor/}" # pour permettre de spécifier le chemin directement
 | 
			
		||||
    m="${m//\//-}"
 | 
			
		||||
    case "$m" in
 | 
			
		||||
    ur-*|lib-*) ;;
 | 
			
		||||
    *) m="ur-$m";;
 | 
			
		||||
    esac
 | 
			
		||||
    modules+=("$m")
 | 
			
		||||
    p="${m//-/\/}"
 | 
			
		||||
 | 
			
		||||
    check_module
 | 
			
		||||
    case "$action" in
 | 
			
		||||
    rsync)
 | 
			
		||||
        # Action par défaut: ignorer les liens et synchroniser les copies
 | 
			
		||||
        if [ ! -L "vendor/$p" ]; then
 | 
			
		||||
            etitle "$m"
 | 
			
		||||
            update_with_rsync
 | 
			
		||||
            eend
 | 
			
		||||
        fi
 | 
			
		||||
        ;;
 | 
			
		||||
    link)
 | 
			
		||||
        # Ignorer les liens et transformer les copies en liens
 | 
			
		||||
        if [ ! -L "vendor/$p" ]; then
 | 
			
		||||
            link="$m"
 | 
			
		||||
            path="/project/vendor/$p"
 | 
			
		||||
            path="${path%/*}"
 | 
			
		||||
            while [ -n "$path" ]; do
 | 
			
		||||
                link="../$link"
 | 
			
		||||
                path="${path%/*}"
 | 
			
		||||
            done
 | 
			
		||||
 | 
			
		||||
            etitle "$m"
 | 
			
		||||
            estep "suppr. vendor/$p"
 | 
			
		||||
            rm -rf "vendor/$p"
 | 
			
		||||
            mkdirof "vendor/$p"
 | 
			
		||||
 | 
			
		||||
            estep "vendor/$p --> $link"
 | 
			
		||||
            ln -s "$link" "vendor/$p"
 | 
			
		||||
            eend
 | 
			
		||||
        fi
 | 
			
		||||
        ;;
 | 
			
		||||
    copy)
 | 
			
		||||
        # Transformer les liens en copie et les synchroniser
 | 
			
		||||
        etitle "$m"
 | 
			
		||||
        if [ -L "vendor/$p" ]; then
 | 
			
		||||
            estep "suppr. vendor/$p"
 | 
			
		||||
            rm -f "vendor/$p"
 | 
			
		||||
        fi
 | 
			
		||||
        update_with_rsync
 | 
			
		||||
        eend
 | 
			
		||||
        ;;
 | 
			
		||||
    install)
 | 
			
		||||
        # Supprimer les liens et répertoires...
 | 
			
		||||
        etitle "$m"
 | 
			
		||||
        if [ -e "vendor/$p" ]; then
 | 
			
		||||
            estep "suppr. vendor/$p"
 | 
			
		||||
            rm -rf "vendor/$p"
 | 
			
		||||
        fi
 | 
			
		||||
        array_add deps "$p"
 | 
			
		||||
        eend
 | 
			
		||||
        ;;
 | 
			
		||||
    reinstall-link)
 | 
			
		||||
        # Supprimer les liens uniquement...
 | 
			
		||||
        etitle "$m"
 | 
			
		||||
        if [ -L "vendor/$p" ]; then
 | 
			
		||||
            estep "suppr. vendor/$p"
 | 
			
		||||
            rm -f "vendor/$p"
 | 
			
		||||
        fi
 | 
			
		||||
        array_add deps "$p"
 | 
			
		||||
        eend
 | 
			
		||||
        ;;
 | 
			
		||||
    update|update-commit|update-deps|update-recursive)
 | 
			
		||||
        # Supprimer les liens et répertoires...
 | 
			
		||||
        etitle "$m"
 | 
			
		||||
        if [ -e "vendor/$p" ]; then
 | 
			
		||||
            estep "suppr. vendor/$p"
 | 
			
		||||
            rm -rf "vendor/$p"
 | 
			
		||||
        fi
 | 
			
		||||
        array_add deps "$p"
 | 
			
		||||
        eend
 | 
			
		||||
        ;;
 | 
			
		||||
    *) die "$action: action inconnue";;
 | 
			
		||||
    esac
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
case "$action" in
 | 
			
		||||
install|reinstall-link)
 | 
			
		||||
    # ... puis installer les dépendances
 | 
			
		||||
    estep "Installation des dépendances"
 | 
			
		||||
    "$scriptdir/dk" ci || die
 | 
			
		||||
    ;;
 | 
			
		||||
update|update-commit)
 | 
			
		||||
    # ... puis mettre à jour les dépendances
 | 
			
		||||
    estep "Mise à jour des dépendances"
 | 
			
		||||
    "$scriptdir/dk" cu "${deps[@]}" || die
 | 
			
		||||
 | 
			
		||||
    if [ "$action" == update-commit ]; then
 | 
			
		||||
        if [ -z "$nowait" ]; then
 | 
			
		||||
            # laisser le temps à @$*! d'eclipse qui met à jour automatiquement le projet...
 | 
			
		||||
            estep "Attendre 10 secondes avant git commit"
 | 
			
		||||
            sleep 10
 | 
			
		||||
        fi
 | 
			
		||||
 | 
			
		||||
        estep "Enregistrement dans git"
 | 
			
		||||
        pci -A "maj deps"
 | 
			
		||||
    fi
 | 
			
		||||
    ;;
 | 
			
		||||
update-deps)
 | 
			
		||||
    # mettre à jour les dépendances directes
 | 
			
		||||
    for m in "${modules[@]}"; do
 | 
			
		||||
        etitle "Mise à jour projet dépendant: $m"
 | 
			
		||||
        "$script" -d "../$m" -w
 | 
			
		||||
        eend
 | 
			
		||||
    done
 | 
			
		||||
 | 
			
		||||
    estep "Mise à jour des dépendances"
 | 
			
		||||
    "$scriptdir/dk" cu || die
 | 
			
		||||
 | 
			
		||||
    if [ -z "$nowait" ]; then
 | 
			
		||||
        # laisser le temps à @$*! d'eclipse qui met à jour automatiquement le projet...
 | 
			
		||||
        estep "Attendre 10 secondes avant git commit"
 | 
			
		||||
        sleep 10
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    estep "Enregistrement dans git"
 | 
			
		||||
    pci -A "maj deps"
 | 
			
		||||
    ;;
 | 
			
		||||
update-recursive)
 | 
			
		||||
    # mettre à jour les dépendances de façon récursive
 | 
			
		||||
    for m in "${modules[@]}"; do
 | 
			
		||||
        etitle "Mise à jour récursive: $m"
 | 
			
		||||
        "$script" -d "../$m" --ur
 | 
			
		||||
        eend
 | 
			
		||||
    done
 | 
			
		||||
 | 
			
		||||
    estep "Mise à jour des dépendances"
 | 
			
		||||
    "$scriptdir/dk" cu || die
 | 
			
		||||
 | 
			
		||||
    if [ -z "$nowait" ]; then
 | 
			
		||||
        # laisser le temps à @$*! d'eclipse qui met à jour automatiquement le projet...
 | 
			
		||||
        estep "Attendre 10 secondes avant git commit"
 | 
			
		||||
        sleep 10
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    estep "Enregistrement dans git"
 | 
			
		||||
    pci -A "maj deps"
 | 
			
		||||
    ;;
 | 
			
		||||
esac
 | 
			
		||||
							
								
								
									
										132
									
								
								dmcerts
									
									
									
									
									
								
							
							
						
						
									
										132
									
								
								dmcerts
									
									
									
									
									
								
							@ -1,132 +0,0 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
source "$(dirname -- "$0")/lib/ulib/auto" || exit 1
 | 
			
		||||
urequire install
 | 
			
		||||
 | 
			
		||||
function display_help() {
 | 
			
		||||
    uecho "$scriptname: gérer les certificats de docker-machine
 | 
			
		||||
 | 
			
		||||
Les certificats créés par docker-machine ont une durée trop courte à mon goût.
 | 
			
		||||
Ce script permet de les recréer avec une durée de 30 ans pour le CA et le
 | 
			
		||||
certificat client, et de 10 ans pour chaque machine
 | 
			
		||||
 | 
			
		||||
USAGE
 | 
			
		||||
    $scriptname [host]"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
args=(
 | 
			
		||||
    --help '$exit_with display_help'
 | 
			
		||||
)
 | 
			
		||||
parse_args "$@"; set -- "${args[@]}"
 | 
			
		||||
 | 
			
		||||
dmdir="$HOME/.docker/machine"
 | 
			
		||||
 | 
			
		||||
cadir="$dmdir/dmcerts"
 | 
			
		||||
cakey="$cadir/dmca.key"
 | 
			
		||||
cacsr="$cadir/dmca.csr"
 | 
			
		||||
cacrt="$cadir/dmca.crt"
 | 
			
		||||
cacrl="$cadir/dmca.crl"
 | 
			
		||||
if [ ! -d "$cadir" ]; then
 | 
			
		||||
    enote "Le répertoire $cadir va être créé. Ne faites cela que si c'est la première fois. Sinon, récupérez le répertoire déjà créé par ailleurs"
 | 
			
		||||
    ask_yesno "Voulez-vous continuer?" N || die
 | 
			
		||||
    
 | 
			
		||||
    mkdir "$cadir"
 | 
			
		||||
    chmod 700 "$cadir"
 | 
			
		||||
    mkdir "$cadir"/{openssl,newcerts}
 | 
			
		||||
    touch "$cadir/index.txt"
 | 
			
		||||
    echo 01 >"$cadir/serial"
 | 
			
		||||
 | 
			
		||||
    for src in "$scriptdir"/lib/dmcerts_openssl_*.cnf; do
 | 
			
		||||
        dest="$cadir/openssl/${src#$scriptdir/lib/dmcerts_openssl_}"
 | 
			
		||||
        cp "$src" "$dest"
 | 
			
		||||
    done
 | 
			
		||||
    sed -i "s/^dir = .*/dir = ${cadir//\//\\\/}/" "$cadir/openssl/"*.cnf
 | 
			
		||||
 | 
			
		||||
    openssl req -config "$cadir/openssl/ca.cnf" -batch -new -nodes -keyout "$cakey" -out "$cacsr" &&
 | 
			
		||||
        openssl ca -config "$cadir/openssl/ca.cnf" -batch -notext -out "$cacrt" -days 10950 -keyfile "$cakey" -selfsign -extensions v3_ca -infiles "$cacsr" &&
 | 
			
		||||
        openssl ca -config "$cadir/openssl/ca.cnf" -batch -gencrl -out "$cacrl" ||
 | 
			
		||||
            die "Une erreur s'est produite. Veuillez supprimer $cadir et recommencer"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
clientkey="$cadir/dmclient.key"
 | 
			
		||||
clientcsr="$cadir/dmclient.csr"
 | 
			
		||||
clientcrt="$cadir/dmclient.crt"
 | 
			
		||||
clientcnf="$cadir/openssl/client.cnf"
 | 
			
		||||
if [ ! -f "$clientcrt" ]; then
 | 
			
		||||
    #sed -i "s/^dir = .*/dir = ${cadir//\//\\\/}/" "$clientcnf"
 | 
			
		||||
 | 
			
		||||
    subj="/countryName=FR/stateOrProvinceName=La Reunion/localityName=Sainte Clotilde/organizationName=jclain/CN=dmclient/"
 | 
			
		||||
    openssl req -config "$clientcnf" -batch -new -nodes -subj "$subj" -keyout "$clientkey" -out "$clientcsr" &&
 | 
			
		||||
        openssl ca -config "$clientcnf" -batch -keyfile "$cakey" -notext -out "$clientcrt" -infiles "$clientcsr" &&
 | 
			
		||||
        chmod 644 "$clientcrt" &&
 | 
			
		||||
        chmod 600 "$clientkey" &&
 | 
			
		||||
        rm -f "$clientcsr" ||
 | 
			
		||||
            die "Une erreur s'est produite pendant la génération du certificat client"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
estep "Vérification certificats locaux"
 | 
			
		||||
copy_update "$cacrt" "$dmdir/certs/ca.pem"
 | 
			
		||||
copy_update "$cakey" "$dmdir/certs/ca-key.pem"
 | 
			
		||||
copy_update "$clientcrt" "$dmdir/certs/cert.pem"
 | 
			
		||||
copy_update "$clientkey" "$dmdir/certs/key.pem"
 | 
			
		||||
 | 
			
		||||
first=1
 | 
			
		||||
for host in "$@"; do
 | 
			
		||||
    if [ -n "$first" ]; then
 | 
			
		||||
        servercnf="$cadir/openssl/server.cnf"
 | 
			
		||||
        #sed -i "s/^dir = .*/dir = ${cadir//\//\\\/}/" "$servercnf"
 | 
			
		||||
    else
 | 
			
		||||
        first=
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    etitle "$host"
 | 
			
		||||
    machine="${host%%.*}"
 | 
			
		||||
    machinedir="$dmdir/machines/$machine"
 | 
			
		||||
    if [ ! -d "$machinedir" ]; then
 | 
			
		||||
        eerror "$machine: machine inexistante"
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    serverkey="${machine}-server.key"
 | 
			
		||||
    servercsr="${machine}-server.csr"
 | 
			
		||||
    servercrt="${machine}-server.crt"
 | 
			
		||||
    if [ ! -f "$servercrt" ]; then
 | 
			
		||||
        subj="/countryName=FR/stateOrProvinceName=La Reunion/localityName=Sainte Clotilde/organizationName=jclain/CN=dmserver-$host/"
 | 
			
		||||
        sans="DNS:$host,DNS:localhost"
 | 
			
		||||
        sed -i "s/^subjectAltName = .*/subjectAltName = $sans/" "$servercnf"
 | 
			
		||||
        openssl req -config "$servercnf" -batch -new -nodes -subj "$subj" -keyout "$serverkey" -out "$servercsr" &&
 | 
			
		||||
            openssl ca -config "$servercnf" -batch -keyfile "$cakey" -notext -out "$servercrt" -infiles "$servercsr" &&
 | 
			
		||||
            chmod 644 "$servercrt" &&
 | 
			
		||||
            chmod 600 "$serverkey" &&
 | 
			
		||||
            rm -f "$servercsr" ||
 | 
			
		||||
                die "Une erreur s'est produite pendant la génération du certificat serveur"
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    estep "machine: $machine"
 | 
			
		||||
    ask_yesno "Voulez-vous remplacer les certificats distants et locaux?" O || continue
 | 
			
		||||
 | 
			
		||||
    estep "Copie distante"
 | 
			
		||||
    scp "$cacrt" "root@$host:/etc/docker/ca.pem" || die
 | 
			
		||||
    scp "$servercrt" "root@$host:/etc/docker/server.pem" || die
 | 
			
		||||
    scp "$serverkey" "root@$host:/etc/docker/server-key.pem" || die
 | 
			
		||||
 | 
			
		||||
    estep "Redémarrage docker distant"
 | 
			
		||||
    ssh "root@$host" "service docker restart" || die
 | 
			
		||||
 | 
			
		||||
    estep "Copie locale"
 | 
			
		||||
    copy_update "$cacrt" "$machinedir/ca.pem"
 | 
			
		||||
    copy_update "$cakey" "$machinedir/ca-key.pem"
 | 
			
		||||
    copy_update "$clientcrt" "$machinedir/cert.pem"
 | 
			
		||||
    copy_update "$clientkey" "$machinedir/key.pem"
 | 
			
		||||
    copy_update "$servercrt" "$machinedir/server.pem"
 | 
			
		||||
    copy_update "$serverkey" "$machinedir/server-key.pem"
 | 
			
		||||
 | 
			
		||||
    estep "Test de l'accès au serveur"
 | 
			
		||||
    setx env=docker-machine env "$machine" || die
 | 
			
		||||
    eval "$env"
 | 
			
		||||
    echo "$machine docker version: $(docker system info -f '{{.ServerVersion}}')"
 | 
			
		||||
 | 
			
		||||
    estep "Suppression des fichiers temporaires"
 | 
			
		||||
    rm -f "$servercrt" "$serverkey"
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
enote "N'oubliez pas de re-exporter les docker-machines qui ont été regénérées"
 | 
			
		||||
							
								
								
									
										160
									
								
								dmctl
									
									
									
									
									
								
							
							
						
						
									
										160
									
								
								dmctl
									
									
									
									
									
								
							@ -1,160 +0,0 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
source "$(dirname -- "$0")/lib/ulib/auto" || exit 1
 | 
			
		||||
 | 
			
		||||
function display_help() {
 | 
			
		||||
    uecho "$scriptname: import/exporter une docker-machine
 | 
			
		||||
 | 
			
		||||
USAGE
 | 
			
		||||
    $scriptname -d NAME
 | 
			
		||||
    $scriptname -l ARCHIVE
 | 
			
		||||
    $scriptname -a ARCHIVEs...
 | 
			
		||||
 | 
			
		||||
OPTIONS
 | 
			
		||||
    -d, --dump
 | 
			
		||||
        Exporter la machine
 | 
			
		||||
    -l, --load
 | 
			
		||||
        Importer la machine à partir de l'archive spécifiée
 | 
			
		||||
    -a, --load-all
 | 
			
		||||
        Importer toutes les machines depuis le répertoire spécifié"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function dump_machine() {
 | 
			
		||||
    local name srcdir workdir destdir archive i
 | 
			
		||||
 | 
			
		||||
    name="$1"
 | 
			
		||||
    [ -n "$name" ] || die "Vous devez spécifier le nom de la machine"
 | 
			
		||||
 | 
			
		||||
    srcdir="$HOME/.docker/machine/machines/$name"
 | 
			
		||||
    [ -d "$srcdir" ] || die "$name: nom de machine incorrect"
 | 
			
		||||
 | 
			
		||||
    ac_set_tmpdir workdir
 | 
			
		||||
    destdir="$workdir/$name"
 | 
			
		||||
 | 
			
		||||
    archive="${name}-machine.tar.gz"
 | 
			
		||||
 | 
			
		||||
    estep "Copie des fichiers"
 | 
			
		||||
    cp -r "$srcdir" "$workdir" || die
 | 
			
		||||
    for i in ca-key.pem ca.pem key.pem cert.pem; do
 | 
			
		||||
        [ -f "$destdir/$i" ] || {
 | 
			
		||||
            cp "$HOME/.docker/machine/certs/$i" "$destdir" || die
 | 
			
		||||
        }
 | 
			
		||||
    done
 | 
			
		||||
 | 
			
		||||
    estep "Correction des chemins"
 | 
			
		||||
    sed -i "\
 | 
			
		||||
s|$HOME/.docker/machine|DOCKER_MACHINE_HOME|g
 | 
			
		||||
s|DOCKER_MACHINE_HOME/certs/|DOCKER_MACHINE_HOME/machines/$name/|g
 | 
			
		||||
" "$destdir/config.json" || die
 | 
			
		||||
 | 
			
		||||
    estep "Génération de $archive"
 | 
			
		||||
    tar czf "$archive" -C "$workdir" "$name" || die
 | 
			
		||||
 | 
			
		||||
    ac_clean "$workdir"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function load_machine() {
 | 
			
		||||
    local archive archivename destdir machinedir origdir workdir srcdir
 | 
			
		||||
 | 
			
		||||
    archive="$1"
 | 
			
		||||
    [ -n "$archive" ] || die "Vous devez spécifier l'archive à importer"
 | 
			
		||||
 | 
			
		||||
    setx archivename=basename -- "$archive"
 | 
			
		||||
    if [[ "$archivename" == *-machine.tar.gz ]]; then
 | 
			
		||||
        name="${archivename%-machine.tar.gz}"
 | 
			
		||||
    else
 | 
			
		||||
        die "$archive: n'est pas une archive docker-machine"
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    destdir="$HOME/.docker/machine/machines"
 | 
			
		||||
    machinedir="$destdir/$name"
 | 
			
		||||
    origdir="$HOME/${name}-machine.orig"
 | 
			
		||||
    if [ -d "$machinedir" ]; then
 | 
			
		||||
        if [ -n "$NOCLOBBER" ]; then
 | 
			
		||||
            ewarn "$name: cette machine existe déjà"
 | 
			
		||||
            return
 | 
			
		||||
        else
 | 
			
		||||
            ewarn "$name: une machine du même nom existe déjà"
 | 
			
		||||
            ask_yesno "Voulez-vous l'écraser?" N || die
 | 
			
		||||
 | 
			
		||||
            [ -d "$origdir" ] && rm -rf "$origdir"
 | 
			
		||||
            mv "$machinedir" "$origdir"
 | 
			
		||||
        fi
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    ac_set_tmpdir workdir
 | 
			
		||||
    srcdir="$workdir/$name"
 | 
			
		||||
 | 
			
		||||
    estep "Extraction de l'archive"
 | 
			
		||||
    tar xzf "$archive" -C "$workdir"
 | 
			
		||||
 | 
			
		||||
    [ -d "$srcdir" ] || die "L'archive n'est pas pour la machine $name"
 | 
			
		||||
 | 
			
		||||
    estep "Corriger les chemins"
 | 
			
		||||
    sed -i "\
 | 
			
		||||
s|DOCKER_MACHINE_HOME|$HOME/.docker/machine|g
 | 
			
		||||
" "$srcdir/config.json" || die
 | 
			
		||||
 | 
			
		||||
    estep "Installation de la machine"
 | 
			
		||||
    mkdir -p "$destdir"
 | 
			
		||||
    mv "$srcdir" "$destdir"
 | 
			
		||||
 | 
			
		||||
    if [ -d "$origdir" ]; then
 | 
			
		||||
        enote "Une fois que la machine aura été testée, vous pouvez supprimer ce répertoire:
 | 
			
		||||
    $origdir"
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    ac_clean "$workdir"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
# faut-il ignorer les machines existantes
 | 
			
		||||
NOCLOBBER=
 | 
			
		||||
 | 
			
		||||
action=
 | 
			
		||||
args=(
 | 
			
		||||
    --help '$exit_with display_help'
 | 
			
		||||
    -d,--dump,-x,--export,-s,--save action=dump
 | 
			
		||||
    -l,--load,-i,--import action=load
 | 
			
		||||
    -a,--all,--load-all,--import-all action=loadall
 | 
			
		||||
)
 | 
			
		||||
parse_args "$@"; set -- "${args[@]}"
 | 
			
		||||
 | 
			
		||||
if [ -z "$action" ]; then
 | 
			
		||||
    case "$1" in
 | 
			
		||||
    d|dump|x|export|s|save) action=dump; shift;;
 | 
			
		||||
    l|load|i|import) action=load; shift;;
 | 
			
		||||
    a|all|loadall|importall) action=loadall; shift;;
 | 
			
		||||
    *) die "Vous devez spécifier l'action à effectuer";;
 | 
			
		||||
    esac
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
case "$action" in
 | 
			
		||||
dump)
 | 
			
		||||
    dump_machine "$1"
 | 
			
		||||
    ;;
 | 
			
		||||
load)
 | 
			
		||||
    for archive in "$@"; do
 | 
			
		||||
        etitle "$archive"
 | 
			
		||||
        load_machine "$archive"
 | 
			
		||||
        eend
 | 
			
		||||
    done
 | 
			
		||||
    ;;
 | 
			
		||||
loadall)
 | 
			
		||||
    [ $# -gt 0 ] || set -- .
 | 
			
		||||
    archives=()
 | 
			
		||||
    for file in "$@"; do
 | 
			
		||||
        if [ -d "$file" ]; then
 | 
			
		||||
            NOCLOBBER=1
 | 
			
		||||
            array_lsfiles files "$file" "*-machine.tar.gz"
 | 
			
		||||
            array_extend archives files
 | 
			
		||||
        else
 | 
			
		||||
            archives+=("$file")
 | 
			
		||||
        fi
 | 
			
		||||
    done
 | 
			
		||||
    for archive in "${archives[@]}"; do
 | 
			
		||||
        etitle "$archive"
 | 
			
		||||
        load_machine "$archive"
 | 
			
		||||
        eend
 | 
			
		||||
    done
 | 
			
		||||
    ;;
 | 
			
		||||
esac
 | 
			
		||||
							
								
								
									
										35
									
								
								doc/index.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								doc/index.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,35 @@
 | 
			
		||||
# 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](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](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](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
 | 
			
		||||
							
								
								
									
										17829
									
								
								doc/nutools.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17829
									
								
								doc/nutools.html
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1
									
								
								docker/.dockerignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								docker/.dockerignore
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
/b/t/
 | 
			
		||||
							
								
								
									
										2
									
								
								docker/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								docker/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
			
		||||
/b/
 | 
			
		||||
/build.env.local
 | 
			
		||||
							
								
								
									
										12
									
								
								docker/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								docker/Dockerfile
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,12 @@
 | 
			
		||||
FROM ur/d9base
 | 
			
		||||
 | 
			
		||||
ARG date
 | 
			
		||||
ARG version
 | 
			
		||||
LABEL date=$date version=$version
 | 
			
		||||
 | 
			
		||||
ENV I=/install/nutools
 | 
			
		||||
COPY . $I
 | 
			
		||||
RUN $I/uinst -y $I && rm -rf $I
 | 
			
		||||
 | 
			
		||||
ENV PATH="$PATH:/usr/local/nutools"
 | 
			
		||||
CMD ["/bin/bash", "-il"]
 | 
			
		||||
							
								
								
									
										72
									
								
								docker/build
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										72
									
								
								docker/build
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,72 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
source /etc/ulibauto || exit 1
 | 
			
		||||
 | 
			
		||||
function display_help() {
 | 
			
		||||
    uecho "$scriptname: construire $NAME
 | 
			
		||||
 | 
			
		||||
USAGE
 | 
			
		||||
    $scriptname [options]
 | 
			
		||||
 | 
			
		||||
OPTIONS
 | 
			
		||||
    -b, --build
 | 
			
		||||
    -n, --no-cache"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function do_prereqs() {
 | 
			
		||||
    :
 | 
			
		||||
}
 | 
			
		||||
function do_build() {
 | 
			
		||||
    local date; local -a args
 | 
			
		||||
    setx date=date +%y%m%d
 | 
			
		||||
    args=(
 | 
			
		||||
        -f Dockerfile
 | 
			
		||||
        -t $NAME:latest
 | 
			
		||||
        --build-arg "date=$date"
 | 
			
		||||
        ${no_cache:+--no-cache}
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    etitle "Création de l'image docker $NAME" \
 | 
			
		||||
        docker build "${args[@]}" "$CTXDIR"
 | 
			
		||||
}
 | 
			
		||||
function do_run() {
 | 
			
		||||
    docker run -it --rm "$NAME"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
cd "$scriptdir"
 | 
			
		||||
source ./build.env || die "Impossible de trouver build.env"
 | 
			
		||||
[ -f build.env.local ] && source build.env.local
 | 
			
		||||
 | 
			
		||||
auto=1
 | 
			
		||||
prereqs=
 | 
			
		||||
build=
 | 
			
		||||
no_cache=
 | 
			
		||||
run=
 | 
			
		||||
args=(
 | 
			
		||||
    --help '$exit_with display_help'
 | 
			
		||||
    --prereqs '$prereqs=1; auto='
 | 
			
		||||
    -b,--build '$build=1; auto='
 | 
			
		||||
    -n,--no-cache no_cache=1
 | 
			
		||||
    -r,--run '$run=1; auto='
 | 
			
		||||
)
 | 
			
		||||
parse_args "$@"; set -- "${args[@]}"
 | 
			
		||||
 | 
			
		||||
if [ -n "$prereqs" ]; then
 | 
			
		||||
    build=
 | 
			
		||||
    run=
 | 
			
		||||
elif [ -n "$auto" ]; then
 | 
			
		||||
    build=1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ -n "$prereqs" ]; then
 | 
			
		||||
    do_prereqs "$@" || die
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ -n "$build" ]; then
 | 
			
		||||
    do_build "$@" || die
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ -n "$run" ]; then
 | 
			
		||||
    do_run "$@" || die
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										15
									
								
								docker/build.env
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								docker/build.env
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,15 @@
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
# Nom de l'image
 | 
			
		||||
NAME=ur/nutools
 | 
			
		||||
# Build context pour docker
 | 
			
		||||
CTXDIR=..
 | 
			
		||||
# Répertoire contenant les fichiers nécessaire au build
 | 
			
		||||
BUILDDIR=b
 | 
			
		||||
# Répertoire temporaire pour construire les fichiers de BUILDDIR. Ce répertoire
 | 
			
		||||
# n'est pas transmis au daemon docker
 | 
			
		||||
TRANSDIR=b/t
 | 
			
		||||
 | 
			
		||||
# Fonctions spécifiques
 | 
			
		||||
#function do_prereqs() { :; }
 | 
			
		||||
#function do_build() { :; }
 | 
			
		||||
#function do_run() { :; }
 | 
			
		||||
@ -11,7 +11,7 @@ if [ "$#" -eq 1 -a "$1" == --nutools-makelinks ]; then
 | 
			
		||||
    exit 0
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
source "$(dirname -- "$0")/lib/ulib/ulib" || exit 1
 | 
			
		||||
source "$(dirname "$0")/lib/ulib/ulib" || exit 1
 | 
			
		||||
urequire base
 | 
			
		||||
 | 
			
		||||
function display_help() {
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,7 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
source "$(dirname -- "$0")/lib/ulib/auto" || exit 1
 | 
			
		||||
source "$(dirname "$0")/lib/ulib/ulib" || exit 1
 | 
			
		||||
urequire DEFAULTS
 | 
			
		||||
 | 
			
		||||
function display_help() {
 | 
			
		||||
    uecho "$scriptname: afficher les connexions TCP entrantes sur un port
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										122
									
								
								ensure-vip
									
									
									
									
									
								
							
							
						
						
									
										122
									
								
								ensure-vip
									
									
									
									
									
								
							@ -1,122 +0,0 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
source "$(dirname -- "$0")/lib/ulib/auto" || exit 1
 | 
			
		||||
urequire ipcalc
 | 
			
		||||
 | 
			
		||||
function display_help() {
 | 
			
		||||
    uecho "$scriptname: s'assurer que l'hôte courant a l'adresse IP spécifiée
 | 
			
		||||
 | 
			
		||||
USAGE
 | 
			
		||||
    $scriptname IPs...
 | 
			
		||||
 | 
			
		||||
NB: ce script ne supporte que la modification d'interfaces qui ne sont pas des
 | 
			
		||||
bridges. il est conçu avant tout pour utilisation sur un serveur, pas un poste
 | 
			
		||||
de travail.
 | 
			
		||||
 | 
			
		||||
OPTIONS
 | 
			
		||||
    -i, --ignore-iface IFACE
 | 
			
		||||
        Ajouter une interface à la liste des interfaces à ignorer. Si cette
 | 
			
		||||
        option est utilisée, la liste par défaut n'est pas utilisée, sauf si
 | 
			
		||||
        l'option -d est utilisée aussi.
 | 
			
		||||
    -d, --defaults
 | 
			
		||||
        Ajouter les valeurs suivantes à liste des interfaces à ignorer:
 | 
			
		||||
            ${DEFAULT_IGNORE_IFACES[*]}
 | 
			
		||||
        Cette option est automatiquement activée si l'option -i n'est pas
 | 
			
		||||
        utilisée
 | 
			
		||||
    -n, --fake
 | 
			
		||||
        Afficher simplement les modification à effectuer"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
DEFAULT_IGNORE_IFACES=(
 | 
			
		||||
    "docker*"
 | 
			
		||||
    "br-*"
 | 
			
		||||
    "veth*"
 | 
			
		||||
)
 | 
			
		||||
DEFAULT_PROFILES=(prod test devel)
 | 
			
		||||
 | 
			
		||||
ignore_ifaces=()
 | 
			
		||||
fake=
 | 
			
		||||
args=(
 | 
			
		||||
    --help '$exit_with display_help'
 | 
			
		||||
    -i:,--ignore-iface: ignore_ifaces
 | 
			
		||||
    -d,--defaults '$array_extend ignore_ifaces DEFAULT_IGNORE_IFACES'
 | 
			
		||||
    -n,--fake fake=1
 | 
			
		||||
)
 | 
			
		||||
parse_args "$@"; set -- "${args[@]}"
 | 
			
		||||
 | 
			
		||||
require_debian
 | 
			
		||||
 | 
			
		||||
for vip in "$@"; do
 | 
			
		||||
    [ "${vip%/*}" != "$vip" ] || vip="$vip/32"
 | 
			
		||||
    vips+=("$vip")
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
array_fix_paths ignore_ifaces
 | 
			
		||||
[ ${#ignore_ifaces[*]} -gt 0 ] || ignore_ifaces=("${DEFAULT_IGNORE_IFACES[@]}")
 | 
			
		||||
 | 
			
		||||
if [ -n "$fake" ]; then
 | 
			
		||||
    set_verbosity --debug
 | 
			
		||||
    __NETWORK_DEVEL_SHOW_MODIFS=1
 | 
			
		||||
    __DEBIAN_NETWORK_DEVEL_SHOW_MODIFS=1
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
################################################################################
 | 
			
		||||
# réimplémentation "corrigée" de network_config_partial()
 | 
			
		||||
 | 
			
		||||
nifile="$__DEBIAN_NETWORK_INTERFACES"
 | 
			
		||||
 | 
			
		||||
network_set_confips
 | 
			
		||||
network_set_confbrs
 | 
			
		||||
tmpconfips=()
 | 
			
		||||
for confip in "${confips[@]}"; do
 | 
			
		||||
    network_parse_confip "$confip" iface gateway ipsuffixes
 | 
			
		||||
    continue=
 | 
			
		||||
    for ignore_iface in "${ignore_ifaces[@]}"; do
 | 
			
		||||
        if eval "[[ \"\$iface\" == $(qwc "$ignore_iface") ]]"; then
 | 
			
		||||
            continue=1
 | 
			
		||||
            break
 | 
			
		||||
        fi
 | 
			
		||||
    done
 | 
			
		||||
    [ -n "$continue" ] && continue
 | 
			
		||||
 | 
			
		||||
    tmpconfips+=("$confip")
 | 
			
		||||
    network_parse_ipsuffix "${ipsuffixes[0]}" mainip suffix
 | 
			
		||||
    for vip in "${vips[@]}"; do
 | 
			
		||||
        if [ "${vip%.*}" == "${mainip%.*}" ]; then
 | 
			
		||||
            tmpconfips+=("$iface:$vip")
 | 
			
		||||
        fi
 | 
			
		||||
    done
 | 
			
		||||
done
 | 
			
		||||
confips=("${tmpconfips[@]}")
 | 
			
		||||
confbrs=()
 | 
			
		||||
network_fix_confs
 | 
			
		||||
 | 
			
		||||
network_config "" confips confbrs || exit 0
 | 
			
		||||
 | 
			
		||||
# des modifications ont eu lieu, tenter de configurer les nouvelles adresses
 | 
			
		||||
# d'abord calculer les adresses ips qui sont activées
 | 
			
		||||
network_set_confips
 | 
			
		||||
for confip in "${confips[@]}"; do
 | 
			
		||||
    network_parse_confip "$confip" iface gateway ipsuffixes
 | 
			
		||||
    for ipsuffix in "${ipsuffixes[@]}"; do
 | 
			
		||||
        network_parse_ipsuffix "$ipsuffix" ip suffix
 | 
			
		||||
        array_addu ips "$ip"
 | 
			
		||||
    done
 | 
			
		||||
done
 | 
			
		||||
# puis lister les commandes correspondant aux adresses ips non activées
 | 
			
		||||
array_from_lines ups "$(awkrun <"$nifile" -f ips[@] '
 | 
			
		||||
$1 == "up" && $2 == "ip" && $3 == "addr" && $4 == "add" {
 | 
			
		||||
  ip = $5; sub(/(\/[0-9.]+)?$/, "", ip) # enlever suffixe
 | 
			
		||||
  if (! in_array(ip, ips)) {
 | 
			
		||||
    $1 = ""
 | 
			
		||||
    print
 | 
			
		||||
  }
 | 
			
		||||
}')"
 | 
			
		||||
if [ ${#ups[*]} -gt 0 ]; then
 | 
			
		||||
    etitle "Configuration des nouvelles adresses"
 | 
			
		||||
    for up in "${ups[@]}"; do
 | 
			
		||||
        estep "$up"
 | 
			
		||||
        eval "$up"
 | 
			
		||||
    done
 | 
			
		||||
    eend
 | 
			
		||||
fi
 | 
			
		||||
							
								
								
									
										7
									
								
								fconv
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								fconv
									
									
									
									
									
								
							@ -1,6 +1,7 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
source "$(dirname -- "$0")/lib/ulib/auto" || exit 1
 | 
			
		||||
source "$(dirname "$0")/lib/ulib/ulib" || exit 1
 | 
			
		||||
urequire DEFAULTS
 | 
			
		||||
 | 
			
		||||
function display_help() {
 | 
			
		||||
    uecho "$scriptname: convertir un fichier ou les fichiers d'un répertoire
 | 
			
		||||
@ -53,8 +54,6 @@ COMMANDES
 | 
			
		||||
        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
 | 
			
		||||
    [sed] s/from/to/opts
 | 
			
		||||
        Filtrer avec l'expression régulière de sed 's/from/to/opts'
 | 
			
		||||
    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
 | 
			
		||||
@ -152,8 +151,6 @@ function parse_cmd() {
 | 
			
		||||
    cr) echo _nl2cr;;
 | 
			
		||||
    latin1compat|lc) echo _latin1compat;;
 | 
			
		||||
    noaccents|na|fixchars|fc) echo _noaccents;;
 | 
			
		||||
    s/*) qvals sed "$cmd" "$@";;
 | 
			
		||||
    sed) qvals sed "$@";;
 | 
			
		||||
    sort) qvals sort "$@";;
 | 
			
		||||
    *)
 | 
			
		||||
        echo "$cmd: commande invalide"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										9
									
								
								fnconv
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								fnconv
									
									
									
									
									
								
							@ -1,6 +1,7 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
source "$(dirname -- "$0")/lib/ulib/auto" || exit 1
 | 
			
		||||
source "$(dirname "$0")/lib/ulib/ulib" || exit 1
 | 
			
		||||
urequire DEFAULTS
 | 
			
		||||
 | 
			
		||||
function display_help() {
 | 
			
		||||
    uecho "$scriptname: renommer un fichier ou les fichiers d'un répertoire
 | 
			
		||||
@ -50,9 +51,7 @@ COMMANDES
 | 
			
		||||
    u, uppercase
 | 
			
		||||
        Transformer le nom en majuscule
 | 
			
		||||
    f, fixcase
 | 
			
		||||
        Transformer le nom en minuscule s'il est entièrement en majuscule
 | 
			
		||||
    [sed] s/from/to/opts
 | 
			
		||||
        Renommer le fichier avec l'expression régulière de sed 's/from/to/opts'"
 | 
			
		||||
        Transformer le nom en minuscule s'il est entièrement en majuscule"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function _lowercase() {
 | 
			
		||||
@ -164,8 +163,6 @@ function parse_cmd() {
 | 
			
		||||
    lowercase|lower|l) echo _lowercase;;
 | 
			
		||||
    uppercase|upper|u) echo _uppercase;;
 | 
			
		||||
    fixcase|fix|f) echo _fixcase;;
 | 
			
		||||
    s/*) qvals sed "$cmd" "$@";;
 | 
			
		||||
    sed) qvals sed "$@";;
 | 
			
		||||
    *)
 | 
			
		||||
        echo "$cmd: commande invalide"
 | 
			
		||||
        return 1
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										3
									
								
								fndate
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								fndate
									
									
									
									
									
								
							@ -11,7 +11,8 @@ if [ "$#" -eq 1 -a "$1" == --nutools-makelinks ]; then
 | 
			
		||||
    exit 0
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
source "$(dirname -- "$0")/lib/ulib/auto" || exit 1
 | 
			
		||||
source "$(dirname "$0")/lib/ulib/ulib" || exit 1
 | 
			
		||||
urequire DEFAULTS
 | 
			
		||||
 | 
			
		||||
function display_help() {
 | 
			
		||||
    uecho "$scriptname: manipuler des noms de fichier pour les dater
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										75
									
								
								foreach
									
									
									
									
									
								
							
							
						
						
									
										75
									
								
								foreach
									
									
									
									
									
								
							@ -1,6 +1,7 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
source "$(dirname -- "$0")/lib/ulib/auto" || exit 1
 | 
			
		||||
source "$(dirname "$0")/lib/ulib/ulib" || exit 1
 | 
			
		||||
urequire DEFAULTS
 | 
			
		||||
 | 
			
		||||
function display_help() {
 | 
			
		||||
    uecho "$scriptname: lancer une commande pour un ensemble d'arguments
 | 
			
		||||
@ -73,23 +74,10 @@ OPTIONS
 | 
			
		||||
        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:
 | 
			
		||||
            $scriptname -n '*.c' 'cp \"\$item\" dest/dir'
 | 
			
		||||
    --title
 | 
			
		||||
    --pt, --parent-title
 | 
			
		||||
    --nt, --no-title
 | 
			
		||||
    -t, --title
 | 
			
		||||
    --no-title
 | 
			
		||||
        Afficher (resp. ne pas afficher) chaque correspondance avant de lancer
 | 
			
		||||
        la commande. Par défaut, l'affichage est effectué.
 | 
			
		||||
        Avec --parent-title, pour chaque correspondance afficher plutôt le
 | 
			
		||||
        répertoire parent (valide uniquement avec l'option -p)
 | 
			
		||||
    -S, --git-status
 | 
			
		||||
        Equivalent à spécifier la commande 'git status --p'
 | 
			
		||||
        Utiliser par exemple avec -g, -G ou -C
 | 
			
		||||
    -G, --git-projects
 | 
			
		||||
        Equivalent à '--ptitle -p */.git --' e.g '$scriptname -G git pull' pour
 | 
			
		||||
        mettre à jour les dépôts situés dans un répertoire
 | 
			
		||||
    -C, --composer-projects
 | 
			
		||||
        Equivalent à '--ptitle -p */composer.json --'
 | 
			
		||||
    --cc, --composer-cmd
 | 
			
		||||
        Equivalent à '--ptitle -p */composer.json -- dk composer'"
 | 
			
		||||
        la commande. Par défaut, l'affichage est effectué."
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
basedir=
 | 
			
		||||
@ -97,9 +85,7 @@ match=auto
 | 
			
		||||
changedir=
 | 
			
		||||
parentdir=
 | 
			
		||||
expand=1
 | 
			
		||||
title=auto
 | 
			
		||||
command=
 | 
			
		||||
shortcut=
 | 
			
		||||
title=1
 | 
			
		||||
args=(+
 | 
			
		||||
    --help '$exit_with display_help'
 | 
			
		||||
    -b:,--basedir: basedir=
 | 
			
		||||
@ -111,47 +97,18 @@ args=(+
 | 
			
		||||
    -s,--string match=string
 | 
			
		||||
    -x,--expand expand=1
 | 
			
		||||
    -n,--no-expand expand=
 | 
			
		||||
    --title title=1
 | 
			
		||||
    --pt,--parent-title title=p
 | 
			
		||||
    --nt,--no-title title=
 | 
			
		||||
    -S,--git-status command=git-status-p
 | 
			
		||||
    -G,--git-projects shortcut=git
 | 
			
		||||
    -C,--composer-projects shortcut=composer
 | 
			
		||||
    --cc,--composer-cmd shortcut=composer-cmd
 | 
			
		||||
    -t,--title title=1
 | 
			
		||||
    --no-title title=
 | 
			
		||||
)
 | 
			
		||||
parse_args "$@"; set -- "${args[@]}"
 | 
			
		||||
 | 
			
		||||
case "$command" in
 | 
			
		||||
git-status-p)
 | 
			
		||||
    if [ -n "$shortcut" ]; then
 | 
			
		||||
        set -- git status --p "$@"
 | 
			
		||||
    else
 | 
			
		||||
        set -- "$@" -- git status --p
 | 
			
		||||
    fi
 | 
			
		||||
    ;;
 | 
			
		||||
esac
 | 
			
		||||
case "$shortcut" in
 | 
			
		||||
git)
 | 
			
		||||
    set -- */.git -- "$@"
 | 
			
		||||
    parentdir=1
 | 
			
		||||
    [ "$title" == auto ] && title=p
 | 
			
		||||
    ;;
 | 
			
		||||
composer)
 | 
			
		||||
    set -- */composer.json -- "$@"
 | 
			
		||||
    parentdir=1
 | 
			
		||||
    [ "$title" == auto ] && title=p
 | 
			
		||||
    ;;
 | 
			
		||||
composer-cmd)
 | 
			
		||||
    set -- */composer.json -- "$scriptdir/dk" composer "$@"
 | 
			
		||||
    parentdir=1
 | 
			
		||||
    [ "$title" == auto ] && title=p
 | 
			
		||||
    ;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
if [ "$match" == auto ]; then
 | 
			
		||||
    [ -n "$changedir" ] && match=dir || match=all
 | 
			
		||||
    if [ -n "$changedir" ]; then
 | 
			
		||||
        match=dir
 | 
			
		||||
    else
 | 
			
		||||
        match=all
 | 
			
		||||
    fi
 | 
			
		||||
fi
 | 
			
		||||
[ "$title" == auto ] && title=1
 | 
			
		||||
 | 
			
		||||
alt_syntax=
 | 
			
		||||
for sep in "$@"; do
 | 
			
		||||
@ -218,11 +175,7 @@ fi
 | 
			
		||||
[ -n "$title" ] && einfo "${#items[@]} correspondance(s) trouvée(s)"
 | 
			
		||||
let index=0
 | 
			
		||||
for item in "${items[@]}"; do
 | 
			
		||||
    if [ -n "$parentdir" -a "$title" == p ]; then
 | 
			
		||||
        etitle "$(dirname -- "$item")"
 | 
			
		||||
    elif [ -n "$title" ]; then
 | 
			
		||||
        etitle "$item"
 | 
			
		||||
    fi
 | 
			
		||||
    [ -n "$title" ] && etitle "$item"
 | 
			
		||||
    i="$item"
 | 
			
		||||
    setx file=abspath "$item"
 | 
			
		||||
    setx dir=dirname -- "$file"
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										3
									
								
								geturl
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								geturl
									
									
									
									
									
								
							@ -1,6 +1,7 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
source "$(dirname -- "$0")/lib/ulib/auto" || exit 1
 | 
			
		||||
source "$(dirname "$0")/lib/ulib/ulib" || exit 1
 | 
			
		||||
urequire DEFAULTS
 | 
			
		||||
 | 
			
		||||
function display_help() {
 | 
			
		||||
    uecho "$scriptname: Télécharger un fichier avec wget ou curl
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										28
									
								
								ipaddr
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								ipaddr
									
									
									
									
									
								
							@ -1,28 +0,0 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
# frontend pour 'ip addr' qui formatte l'affichage pour prendre moins de place
 | 
			
		||||
 | 
			
		||||
if [ -x /usr/bin/ip ]; then IP=/usr/bin/ip
 | 
			
		||||
elif [ -x /bin/ip ]; then IP=/bin/ip
 | 
			
		||||
else IP=ip
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ -n "IPADDR_COLOR" ]; then isatty=1
 | 
			
		||||
else tty -s <&1 && isatty=1 || isatty=
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
"$IP" addr "$@" | awk -v isatty="$isatty" '
 | 
			
		||||
isatty && $0 ~ /^[0-9]/ {
 | 
			
		||||
  $0 = gensub(/: ([^:]+):/, ": \x1B[32m\\1\x1B[0m:", 1)
 | 
			
		||||
}
 | 
			
		||||
isatty && $1 == "inet" {
 | 
			
		||||
  $0 = gensub(/inet ([^ ]+) /, "inet \x1B[34m\\1\x1B[0m ", 1)
 | 
			
		||||
}
 | 
			
		||||
{
 | 
			
		||||
  if ($1 == "inet" || $1 == "inet6") {
 | 
			
		||||
    printf "%s -- ", $0
 | 
			
		||||
    getline
 | 
			
		||||
    sub(/^ +/, "")
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
{ print }'
 | 
			
		||||
							
								
								
									
										33
									
								
								ldiff
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								ldiff
									
									
									
									
									
								
							@ -1,33 +0,0 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
source "$(dirname "$0")/lib/ulib/auto" || exit 1
 | 
			
		||||
 | 
			
		||||
function display_help() {
 | 
			
		||||
    uecho "$scriptname: frontend de diff pour comparer deux fichiers encodés en latin1
 | 
			
		||||
 | 
			
		||||
USAGE
 | 
			
		||||
    $scriptname [options] Lfile Rfile
 | 
			
		||||
 | 
			
		||||
OPTIONS
 | 
			
		||||
    -u, -U, --unified N
 | 
			
		||||
    -w, --ignore-all-space
 | 
			
		||||
    -B, --ignore-blank-lines
 | 
			
		||||
        options de diff qui sont reprises telles quelles"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
diffopts=()
 | 
			
		||||
args=(
 | 
			
		||||
    --help '$exit_with display_help'
 | 
			
		||||
    -u '$diffopts+=(-u)'
 | 
			
		||||
    -U:,--unified: '$diffopts+=(-U "$value_")'
 | 
			
		||||
    -w,--ignore-all-space '$diffopts+=(-w)'
 | 
			
		||||
    -B,--ignore-blank-lines '$diffopts+=(-B)'
 | 
			
		||||
)
 | 
			
		||||
parse_args "$@"; set -- "${args[@]}"
 | 
			
		||||
 | 
			
		||||
Lfile="$1"
 | 
			
		||||
Rfile="$2"
 | 
			
		||||
[ -n "$Lfile" -a -n "$Rfile" ] || die "vous devez spécifier les deux fichiers"
 | 
			
		||||
[ -d "$Lfile" -o -d "$Rfile" ] && die "il faut absolument comparer deux fichiers"
 | 
			
		||||
 | 
			
		||||
diff "${diffopts[@]}" <(iconv -f latin1 -t utf-8 "$Lfile") <(iconv -f latin1 -t utf-8 "$Rfile")
 | 
			
		||||
							
								
								
									
										41
									
								
								lgrep
									
									
									
									
									
								
							
							
						
						
									
										41
									
								
								lgrep
									
									
									
									
									
								
							@ -1,41 +0,0 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
source "$(dirname "$0")/lib/ulib/auto" || exit 1
 | 
			
		||||
 | 
			
		||||
function display_help() {
 | 
			
		||||
    uecho "$scriptname: frontend de grep pour chercher dans un fichier encodé en latin1
 | 
			
		||||
 | 
			
		||||
USAGE
 | 
			
		||||
    $scriptname [options] FILE
 | 
			
		||||
 | 
			
		||||
OPTIONS
 | 
			
		||||
        options de grep qui sont reprises telles quelles"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
grepopts=()
 | 
			
		||||
args=(
 | 
			
		||||
    --help '$exit_with display_help'
 | 
			
		||||
    -E,--extended-regexp '$grepopts+=(-E)'
 | 
			
		||||
    -F,--fixed-strings '$grepopts+=(-F)'
 | 
			
		||||
    -G,--basic-regexp '$grepopts+=(-G)'
 | 
			
		||||
    -P,--perl-regexp '$grepopts+=(-P)'
 | 
			
		||||
    -i,--ignore-case '$grepopts+=(-i)'
 | 
			
		||||
    -v,--invert-match '$grepopts+=(-v)'
 | 
			
		||||
    -L,--files-without-match '$grepopts+=(-L)'
 | 
			
		||||
    -l,--files-with-matches '$grepopts+=(-l)'
 | 
			
		||||
    -q,--quiet,--silent '$grepopts+=(-q)'
 | 
			
		||||
    -s,--no-messages '$grepopts+=(-s)'
 | 
			
		||||
    -H,--with-filename '$grepopts+=(-H)'
 | 
			
		||||
    -h,--no-filename '$grepopts+=(-h)'
 | 
			
		||||
    -a,--text '$grepopts+=(-a)'
 | 
			
		||||
    -r,--recursive '$grepopts+=(-r)'
 | 
			
		||||
    -R,--dereference-recursive '$grepopts+=(-R)'
 | 
			
		||||
)
 | 
			
		||||
parse_args "$@"; set -- "${args[@]}"
 | 
			
		||||
 | 
			
		||||
pattern="$1"
 | 
			
		||||
args=("${@:2}")
 | 
			
		||||
#XXX ajouter le support de -r, -h, -H, notamment si ${args[@]} contient un
 | 
			
		||||
# répertoire
 | 
			
		||||
 | 
			
		||||
iconv -f latin1 -t utf-8 "${args[@]}" | grep "${grepopts[@]}" "$pattern"
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
#!/usr/bin/env python2
 | 
			
		||||
#!/usr/bin/env python
 | 
			
		||||
# -*- coding: utf-8 mode: python -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
 | 
			
		||||
u"""%(scriptname)s: afficher le hash SHA-1 d'un fichier exprimé en base 36
 | 
			
		||||
 | 
			
		||||
@ -4,25 +4,22 @@
 | 
			
		||||
if [ -n "$UTOOLS_BASH_COMPLETION" ]; then
 | 
			
		||||
    function __bash_completion_enabled() { return 1; }
 | 
			
		||||
    function __bash_completion_module_enabled() { return 1; }
 | 
			
		||||
    _file=
 | 
			
		||||
    if [ -n "$UTOOLS_BASH_COMPLETION_COMPAT" ]; then
 | 
			
		||||
        _file="@@dest@@/lib/ulib/$UTOOLS_BASH_COMPLETION_COMPAT/bash_completion"
 | 
			
		||||
    elif [ -f /etc/debian_version ]; then
 | 
			
		||||
    if [ -f /etc/debian_version ]; then
 | 
			
		||||
        case "$(</etc/debian_version)" in
 | 
			
		||||
        6*|squeeze*)
 | 
			
		||||
            # le code suivant n'est compatible qu'avec debian squeeze (plus
 | 
			
		||||
            # exactement, avec bash 4.0)
 | 
			
		||||
            _file="@@dest@@/lib/ulib/bash40/bash_completion"
 | 
			
		||||
            ;;
 | 
			
		||||
        7*|wheezy*|8*|jessie*|9*|stretch*|10*|buster*)
 | 
			
		||||
        7*|wheezy*|8*|jessie*|9*|stretch*)
 | 
			
		||||
            # le code suivant n'est compatible qu'avec debian wheezy et
 | 
			
		||||
            # supérieur (plus exactement, avec bash 4.1)
 | 
			
		||||
            _file="@@dest@@/lib/ulib/bash41/bash_completion"
 | 
			
		||||
            ;;
 | 
			
		||||
        esac
 | 
			
		||||
    fi
 | 
			
		||||
        [ -f "$_file" ] && source "$_file"
 | 
			
		||||
        unset _file
 | 
			
		||||
    fi
 | 
			
		||||
    if __bash_completion_enabled; then
 | 
			
		||||
        for i in "@@dest@@/lib/completion.d/"*; do
 | 
			
		||||
            [ -f "$i" ] || continue
 | 
			
		||||
 | 
			
		||||
@ -1,54 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
 | 
			
		||||
if [ -n "$UTOOLS_DOCKER_ALIASES" ]; then
 | 
			
		||||
    #if [ "$DOCKER_MACHINE_WRAPPED" == true ]; then
 | 
			
		||||
    #    alias dm=__docker_machine_wrapper
 | 
			
		||||
    #else
 | 
			
		||||
    #    alias dm=docker-machine
 | 
			
		||||
    #fi
 | 
			
		||||
    function dm() {
 | 
			
		||||
        case "$1" in
 | 
			
		||||
        use|ssh)
 | 
			
		||||
            if [ -n "$2" -a -f ~/etc/default/dk ]; then
 | 
			
		||||
                # chercher les aliases éventuels
 | 
			
		||||
                local cmd="$1"; shift
 | 
			
		||||
                local machine="$1"; shift
 | 
			
		||||
                machine="$(
 | 
			
		||||
    CLUSTERDIRS=()
 | 
			
		||||
    DM_ALIASES=()
 | 
			
		||||
    source ~/etc/default/dk
 | 
			
		||||
    for alias_machine in "${DM_ALIASES[@]}"; do
 | 
			
		||||
        if [ "${alias_machine%%:*}" == "$machine" ]; then
 | 
			
		||||
            echo "${alias_machine#*:}"
 | 
			
		||||
            exit
 | 
			
		||||
        fi
 | 
			
		||||
    done
 | 
			
		||||
    for clusterdir in "${CLUSTERDIRS[@]}"; do
 | 
			
		||||
        if [ -f "$clusterdir/0config/configure.conf" ]; then
 | 
			
		||||
            DM_ALIASES=()
 | 
			
		||||
            source "$clusterdir/0config/configure.conf"
 | 
			
		||||
            for alias_machine in "${DM_ALIASES[@]}"; do
 | 
			
		||||
                if [ "${alias_machine%%:*}" == "$machine" ]; then
 | 
			
		||||
                    echo "${alias_machine#*:}"
 | 
			
		||||
                    exit
 | 
			
		||||
                fi
 | 
			
		||||
            done
 | 
			
		||||
        fi
 | 
			
		||||
    done
 | 
			
		||||
    echo "$machine"
 | 
			
		||||
)"
 | 
			
		||||
                set -- "$cmd" "$machine" "$@"
 | 
			
		||||
            fi
 | 
			
		||||
            ;;
 | 
			
		||||
        esac
 | 
			
		||||
        if [ "$DOCKER_MACHINE_WRAPPED" == true ]; then
 | 
			
		||||
            __docker_machine_wrapper "$@"
 | 
			
		||||
        else
 | 
			
		||||
            docker-machine "$@"
 | 
			
		||||
        fi
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if [ -n "$UTOOLS_BASH_COMPLETION" ]; then
 | 
			
		||||
        complete -F _docker_machine dm
 | 
			
		||||
    fi
 | 
			
		||||
fi
 | 
			
		||||
@ -9,12 +9,8 @@
 | 
			
		||||
 | 
			
		||||
# Activer l'auto complétion de bash pour les outils de nutools
 | 
			
		||||
#export UTOOLS_BASH_COMPLETION=1
 | 
			
		||||
#export UTOOLS_BASH_COMPLETION_COMPAT=bash41
 | 
			
		||||
 | 
			
		||||
# utools utilise su plutôt que sudo pour la fonction run_as_root et le script
 | 
			
		||||
# _root. Par défaut, ce n'est le cas que si sudo n'est pas installé. Si sudo est
 | 
			
		||||
# configuré, il est préférable de ne pas utiliser su.
 | 
			
		||||
#export UTOOLS_USES_SU=false
 | 
			
		||||
 | 
			
		||||
# Activer les aliases pour l'utilisation de docker
 | 
			
		||||
#export UTOOLS_DOCKER_ALIASES=1
 | 
			
		||||
 | 
			
		||||
@ -1,24 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
 | 
			
		||||
# Profil par défaut
 | 
			
		||||
#PROFILE=prod
 | 
			
		||||
 | 
			
		||||
# Aliases pour docker-machine
 | 
			
		||||
#DM_ALIASES=(alias:name)
 | 
			
		||||
 | 
			
		||||
# Profiles pour docker-machine
 | 
			
		||||
#DM_PROFILES=(name:profile...)
 | 
			
		||||
 | 
			
		||||
# Répertoires de gestion de cluster. Dans chacun de ces répertoires, le fichier
 | 
			
		||||
# 0config/configure.conf est sourcé à la recherche de définitions de profils et
 | 
			
		||||
# d'aliases
 | 
			
		||||
#CLUSTERDIRS=(~/wop/containers/*.univ.run)
 | 
			
		||||
 | 
			
		||||
# Répertoire de base par défaut des projets en mode devel
 | 
			
		||||
#DEFAULT_DEVEL_SRCDIR="$HOME/wop"
 | 
			
		||||
#COMPOSER_DEVEL_SRCDIR="$HOME/wop/php"
 | 
			
		||||
#MAVEN_DEVEL_SRCDIR="$HOME/wop/sn"
 | 
			
		||||
 | 
			
		||||
# Image à utiliser pour les builds
 | 
			
		||||
#DEFAULT_COMPOSER_IMAGE=pubdocker.univ-reunion.fr/image/php:d11
 | 
			
		||||
#DEFAULT_MAVEN_IMAGE=pubdocker.univ-reunion.fr/image/javabuilder:d11
 | 
			
		||||
@ -1,4 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
 | 
			
		||||
# Profil par défaut
 | 
			
		||||
#DKBUILD_PROFILE=prod
 | 
			
		||||
@ -1,35 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
 | 
			
		||||
# Liste de préfixes permettant de taper le nom d'un dépôt plus rapidement e.g
 | 
			
		||||
#     repoctl create g/ssi-php/myproj
 | 
			
		||||
#     repoctl create v:modules/myproj
 | 
			
		||||
# sont équivalents à
 | 
			
		||||
#     repoctl create https://git.univ-reunion.fr/ssi-php/myproj
 | 
			
		||||
#     repoctl create git@vcs.univ.run:modules/myproj
 | 
			
		||||
# Le format est ALIAS=ACTUAL
 | 
			
		||||
#
 | 
			
		||||
# Ces définitions fonctionnent aussi pour tous les scripts qui utilisent
 | 
			
		||||
# repoctl, dont notamment pclone et pcrone
 | 
			
		||||
REPO_PREFIXES=(
 | 
			
		||||
    s:=git@git.univ-reunion.fr:
 | 
			
		||||
    g/=https://git.univ-reunion.fr/
 | 
			
		||||
    v:=git@vcs.univ.run:  av/=https://vcs.univ-reunion.fr/anongit/
 | 
			
		||||
    p:=pgit@vcs.univ.run: ap/=https://pvcs.univ-reunion.fr/anongit/
 | 
			
		||||
    j/=https://git.jclain.fr/
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
# Définitions des types de dépôt. Le format est NAME:TYPE:PREFIX
 | 
			
		||||
# * NAME est utilisé pour définir des configurations supplémentaires
 | 
			
		||||
# * TYPE peut valoir gitolite ou gogs (ou gitea qui est un alias de gogs). Le
 | 
			
		||||
#   type par défaut est 'gitolite'
 | 
			
		||||
REPO_TYPES=(
 | 
			
		||||
    ur:gitea:https://git.univ-reunion.fr/
 | 
			
		||||
    jclain:gitea:https://git.jclain.fr/
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
# Configuration de l'accès à l'API gogs
 | 
			
		||||
# un nom de dépôt est de la forme user/repo. Si user != $GOGS_USER alors on crée
 | 
			
		||||
# dans une organisation
 | 
			
		||||
#ur_GOGS_URL=https://git.univ-reunion.fr
 | 
			
		||||
#ur_GOGS_USER="$USER"
 | 
			
		||||
#ur_GOGS_KEY=
 | 
			
		||||
@ -1,31 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
default_profile "${DKBUILD_PROFILE:-prod}"
 | 
			
		||||
 | 
			
		||||
# Source des paquets et proxy
 | 
			
		||||
#setenv APT_PROXY=http://aptcache.devel.self:3142
 | 
			
		||||
#setenv APT_MIRROR=default
 | 
			
		||||
#setenv SEC_MIRROR=default
 | 
			
		||||
 | 
			
		||||
# Timezone du serveur
 | 
			
		||||
#setenv TIMEZONE=Indian/Reunion
 | 
			
		||||
 | 
			
		||||
if profile jclain; then
 | 
			
		||||
    setenv REGISTRY=docker.jclain.fr
 | 
			
		||||
    setenv PRIVAREG=docker.jclain.fr
 | 
			
		||||
elif profile prod test; then
 | 
			
		||||
    setenv REGISTRY=pubdocker.univ-reunion.fr/rununiv
 | 
			
		||||
    setenv PRIVAREG=pridocker.univ-reunion.fr
 | 
			
		||||
    host_mappings=(
 | 
			
		||||
        pridocker.univ-reunion.fr:10.85.1.56
 | 
			
		||||
        pubdocker.univ-reunion.fr:10.85.1.57
 | 
			
		||||
        repos.univ-reunion.fr:10.85.1.57
 | 
			
		||||
        git.univ-reunion.fr:10.85.1.55
 | 
			
		||||
    )
 | 
			
		||||
    default docker host-mappings="${host_mappings[*]}"
 | 
			
		||||
elif profile dist; then
 | 
			
		||||
    setenv REGISTRY=pubdocker.univ-reunion.fr/dist
 | 
			
		||||
    setenv PRIVAREG=pridocker.univ-reunion.fr
 | 
			
		||||
elif profile devel; then
 | 
			
		||||
    setenv REGISTRY=docker.devel.self/rununiv
 | 
			
		||||
    setenv PRIVAREG=docker.devel.self
 | 
			
		||||
fi
 | 
			
		||||
@ -1 +0,0 @@
 | 
			
		||||
php
 | 
			
		||||
							
								
								
									
										3
									
								
								lib/dkbuild/templates/image/.gitattributes
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								lib/dkbuild/templates/image/.gitattributes
									
									
									
									
										vendored
									
									
								
							@ -1,3 +0,0 @@
 | 
			
		||||
*.zip filter=lfs diff=lfs merge=lfs -text
 | 
			
		||||
*.tgz filter=lfs diff=lfs merge=lfs -text
 | 
			
		||||
*.tar.gz filter=lfs diff=lfs merge=lfs -text
 | 
			
		||||
							
								
								
									
										2
									
								
								lib/dkbuild/templates/image/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								lib/dkbuild/templates/image/.gitignore
									
									
									
									
										vendored
									
									
								
							@ -1,2 +0,0 @@
 | 
			
		||||
.~lock*#
 | 
			
		||||
.*.swp
 | 
			
		||||
@ -1,3 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: dockerfile -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
FROM $REGISTRY/debian/min:$DIST
 | 
			
		||||
#RUN /debian/pkg i
 | 
			
		||||
@ -1,2 +0,0 @@
 | 
			
		||||
/b/t/
 | 
			
		||||
**/.git/
 | 
			
		||||
							
								
								
									
										3
									
								
								lib/dkbuild/templates/image/d11/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								lib/dkbuild/templates/image/d11/.gitignore
									
									
									
									
										vendored
									
									
								
							@ -1,3 +0,0 @@
 | 
			
		||||
/b/
 | 
			
		||||
/Dockerfile
 | 
			
		||||
# autogénéré
 | 
			
		||||
@ -1,11 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
setdists d11
 | 
			
		||||
 | 
			
		||||
# fichiers communs
 | 
			
		||||
copy ../common/ ./ gitignore=.
 | 
			
		||||
 | 
			
		||||
dockerfile "" Dockerfile.in sed="
 | 
			
		||||
s/\\\$REGISTRY/$REGISTRY/
 | 
			
		||||
s/\\\$DIST/$DIST/
 | 
			
		||||
"
 | 
			
		||||
build
 | 
			
		||||
@ -1 +0,0 @@
 | 
			
		||||
../dkbuild.env
 | 
			
		||||
@ -1,9 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
dists=(
 | 
			
		||||
    d11
 | 
			
		||||
)
 | 
			
		||||
setdists "${dists[@]}"
 | 
			
		||||
 | 
			
		||||
if dist d11; then
 | 
			
		||||
    include d11
 | 
			
		||||
fi
 | 
			
		||||
@ -1,3 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
setenv REGISTRY=pubdocker.univ-reunion.fr
 | 
			
		||||
setenv IMAGE=$REGISTRY/GROUP/NAME
 | 
			
		||||
							
								
								
									
										3
									
								
								lib/dkbuild/templates/php/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								lib/dkbuild/templates/php/.gitignore
									
									
									
									
										vendored
									
									
								
							@ -1,3 +0,0 @@
 | 
			
		||||
/Dockerfile
 | 
			
		||||
.~lock*#
 | 
			
		||||
.*.swp
 | 
			
		||||
@ -1,25 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
if profile prod; then
 | 
			
		||||
    default checkout branch=master
 | 
			
		||||
elif profile test devel; then
 | 
			
		||||
    default checkout branch=develop
 | 
			
		||||
fi
 | 
			
		||||
default composer image=$REGISTRY/image/phpbuilder:$DIST
 | 
			
		||||
 | 
			
		||||
## web ########################################################################
 | 
			
		||||
checkout https://git.univ-reunion.fr/sda-php/NAME-app b/web
 | 
			
		||||
composer b/web
 | 
			
		||||
 | 
			
		||||
dockerfile
 | 
			
		||||
    # -*- coding: utf-8 mode: dockerfile -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
    FROM $REGISTRY/image/apache-php-myiccas:$DIST
 | 
			
		||||
    #RUN /debian/pkg i
 | 
			
		||||
 | 
			
		||||
    #ENV MSMTP_ENABLE=1
 | 
			
		||||
    #COPY b/web/config/msmtp /msmtp-config
 | 
			
		||||
    COPY b/web/config/ssl /ssl-config
 | 
			
		||||
    COPY b/web/config/apache /apache-config
 | 
			
		||||
    COPY b/web/config/php /php-config
 | 
			
		||||
    #COPY b/web/config/before-start-apache /
 | 
			
		||||
    COPY b/web /var/www/app
 | 
			
		||||
build
 | 
			
		||||
@ -1,4 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
setenv REGISTRY=pubdocker.univ-reunion.fr
 | 
			
		||||
setenv IMAGE=$REGISTRY/GROUP/NAME
 | 
			
		||||
setenv DIST=d11
 | 
			
		||||
							
								
								
									
										6
									
								
								lib/dkbuild/templates/php_db/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								lib/dkbuild/templates/php_db/.gitignore
									
									
									
									
										vendored
									
									
								
							@ -1,6 +0,0 @@
 | 
			
		||||
/docker-compose.yml
 | 
			
		||||
/docker-compose.*.yml
 | 
			
		||||
/web/Dockerfile
 | 
			
		||||
/db/Dockerfile
 | 
			
		||||
.~lock*#
 | 
			
		||||
.*.swp
 | 
			
		||||
@ -1,37 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
setprofiles prod test devel
 | 
			
		||||
 | 
			
		||||
if profile prod; then
 | 
			
		||||
    default checkout branch=master
 | 
			
		||||
elif profile test devel; then
 | 
			
		||||
    default checkout branch=develop
 | 
			
		||||
fi
 | 
			
		||||
default composer image=$REGISTRY/image/phpbuilder:$DIST
 | 
			
		||||
 | 
			
		||||
## web ########################################################################
 | 
			
		||||
 | 
			
		||||
checkout https://git.univ-reunion.fr/sda-php/NAME-app web/b/web
 | 
			
		||||
composer web/b/web
 | 
			
		||||
 | 
			
		||||
dockerfile context=web
 | 
			
		||||
    # -*- coding: utf-8 mode: dockerfile -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
    FROM $REGISTRY/image/apache-php-myiccas:$DIST
 | 
			
		||||
    #RUN /debian/pkg i
 | 
			
		||||
 | 
			
		||||
    #ENV MSMTP_ENABLE=1
 | 
			
		||||
    #COPY b/web/config/msmtp /msmtp-config
 | 
			
		||||
    COPY b/web/config/ssl /ssl-config
 | 
			
		||||
    COPY b/web/config/apache /apache-config
 | 
			
		||||
    COPY b/web/config/php /php-config
 | 
			
		||||
    #COPY b/web/config/before-start-apache /
 | 
			
		||||
    COPY b/web /var/www/app
 | 
			
		||||
 | 
			
		||||
## db #########################################################################
 | 
			
		||||
 | 
			
		||||
copy web/b/web/config/sqlmig db/config/mariadb/sqlmig
 | 
			
		||||
 | 
			
		||||
dockerfile context=db
 | 
			
		||||
    # -*- coding: utf-8 mode: dockerfile -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
    FROM $REGISTRY/image/mariadb:$DIST
 | 
			
		||||
 | 
			
		||||
    COPY config/mariadb /mariadb-config
 | 
			
		||||
@ -1,4 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
setenv REGISTRY=pubdocker.univ-reunion.fr
 | 
			
		||||
setenv IMAGE=$REGISTRY/GROUP/NAME
 | 
			
		||||
setenv DIST=d11
 | 
			
		||||
@ -1,12 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: yaml -*- vim:sw=2:sts=2:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
version: "3.7"
 | 
			
		||||
 | 
			
		||||
services:
 | 
			
		||||
  db:
 | 
			
		||||
    image: $REGISTRY/devel/GROUP/NAME-db
 | 
			
		||||
 | 
			
		||||
  web:
 | 
			
		||||
    image: $REGISTRY/devel/GROUP/NAME-web
 | 
			
		||||
    environment:
 | 
			
		||||
      - APP_PROFILE=devel
 | 
			
		||||
      - BASE_URL=http://NAME.self
 | 
			
		||||
@ -1,14 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: yaml -*- vim:sw=2:sts=2:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
version: "3.7"
 | 
			
		||||
 | 
			
		||||
services:
 | 
			
		||||
  db:
 | 
			
		||||
    image: $REGISTRY/GROUP/NAME-db
 | 
			
		||||
 | 
			
		||||
  web:
 | 
			
		||||
    image: $REGISTRY/GROUP/NAME-web
 | 
			
		||||
    environment:
 | 
			
		||||
      - APP_PROFILE=prod
 | 
			
		||||
      - BASE_URL=https://NAME.univ-reunion.fr
 | 
			
		||||
    extra_hosts:
 | 
			
		||||
      - "casn.univ-reunion.fr:10.85.1.15"
 | 
			
		||||
@ -1,14 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: yaml -*- vim:sw=2:sts=2:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
version: "3.7"
 | 
			
		||||
 | 
			
		||||
services:
 | 
			
		||||
  db:
 | 
			
		||||
    image: $REGISTRY/test/GROUP/NAME-db
 | 
			
		||||
 | 
			
		||||
  web:
 | 
			
		||||
    image: $REGISTRY/test/GROUP/NAME-web
 | 
			
		||||
    environment:
 | 
			
		||||
      - APP_PROFILE=test
 | 
			
		||||
      - BASE_URL=https://NAME-test.univ-reunion.fr
 | 
			
		||||
    extra_hosts:
 | 
			
		||||
      - "casn.univ-reunion.fr:10.85.1.15"
 | 
			
		||||
@ -1,34 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: yaml -*- vim:sw=2:sts=2:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
version: "3.7"
 | 
			
		||||
 | 
			
		||||
services:
 | 
			
		||||
  db:
 | 
			
		||||
    build: db
 | 
			
		||||
    volumes:
 | 
			
		||||
      - db-data:/var/lib/mysql
 | 
			
		||||
    networks:
 | 
			
		||||
      default:
 | 
			
		||||
        aliases:
 | 
			
		||||
          - NAMEdb
 | 
			
		||||
    deploy:
 | 
			
		||||
      update_config:
 | 
			
		||||
        order: stop-first
 | 
			
		||||
 | 
			
		||||
  web:
 | 
			
		||||
    build: web
 | 
			
		||||
    volumes:
 | 
			
		||||
      - log-data:/var/log/apache2
 | 
			
		||||
      - session-data:/var/lib/php/sessions
 | 
			
		||||
    extra_hosts:
 | 
			
		||||
      - "smtp.univ.run:10.82.70.46"
 | 
			
		||||
      - "vs-apoprod-bdd.univ.run:10.82.91.11"
 | 
			
		||||
      - "vs-apotest-bdd.univ.run:10.82.91.13"
 | 
			
		||||
      - "vs-apodevp-bdd.univ.run:10.82.91.15"
 | 
			
		||||
    deploy:
 | 
			
		||||
      update_config:
 | 
			
		||||
        order: start-first
 | 
			
		||||
 | 
			
		||||
volumes:
 | 
			
		||||
  db-data:
 | 
			
		||||
  log-data:
 | 
			
		||||
  session-data:
 | 
			
		||||
@ -1,8 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
# Description des templates de ce répertoire
 | 
			
		||||
 | 
			
		||||
TEMPLATES=(
 | 
			
		||||
    [image]="Image générique basée sur debian"
 | 
			
		||||
    [php]="Application web PHP"
 | 
			
		||||
    [php_db]="Application web PHP avec base de données"
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										5
									
								
								lib/dkbuild/tests/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								lib/dkbuild/tests/.gitignore
									
									
									
									
										vendored
									
									
								
							@ -1,5 +0,0 @@
 | 
			
		||||
/Dockerfile
 | 
			
		||||
/src
 | 
			
		||||
/dest
 | 
			
		||||
/srcdir/
 | 
			
		||||
/destdir/
 | 
			
		||||
@ -1,8 +0,0 @@
 | 
			
		||||
# tests
 | 
			
		||||
 | 
			
		||||
Lancer un test de cette façon
 | 
			
		||||
~~~sh
 | 
			
		||||
../../../dkbuild -j test-xxx
 | 
			
		||||
~~~
 | 
			
		||||
 | 
			
		||||
-*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary
 | 
			
		||||
@ -1,2 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
setenv REGISTRY=docker.jclain.fr
 | 
			
		||||
@ -1,16 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
 | 
			
		||||
section "variables de build"
 | 
			
		||||
setarg A="arg A"
 | 
			
		||||
resetarg B="arg B"
 | 
			
		||||
 | 
			
		||||
info "A=${ARGS[A]}, B=${ARGS[B]}"
 | 
			
		||||
if [ "${ARGS[A]}" != x ]; then
 | 
			
		||||
    note "\
 | 
			
		||||
Essayer de relancer avec
 | 
			
		||||
    $(qvals dkbuild -j "$(relpath "$DKBUILD")" --arg A=x --arg B=y)
 | 
			
		||||
on ne devrait pas pouvoir modifier la valeur de B"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# pas de build automatique
 | 
			
		||||
AUTOBUILD=
 | 
			
		||||
@ -1,13 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
setenv REGISTRY=pubdocker.univ-reunion.fr
 | 
			
		||||
setenv IMAGE=$REGISTRY/group/name
 | 
			
		||||
 | 
			
		||||
info "IMAGE=$IMAGE"
 | 
			
		||||
if [ "$REGISTRY" == pubdocker.univ-reunion.fr ]; then
 | 
			
		||||
    note "\
 | 
			
		||||
Essayer de relancer avec
 | 
			
		||||
    $(qvals dkbuild -j "$(relpath "$DKBUILD")" -c registry.env)
 | 
			
		||||
La valeur de IMAGE devrait changer"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
AUTOBUILD=
 | 
			
		||||
@ -1,15 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
 | 
			
		||||
run rm -rf src dest srcdir destdir
 | 
			
		||||
 | 
			
		||||
run mkdir srcdir
 | 
			
		||||
genfile srcdir/src <<<"file"
 | 
			
		||||
run ln -s src srcdir/link
 | 
			
		||||
 | 
			
		||||
copy srcdir destdir
 | 
			
		||||
if run; then
 | 
			
		||||
    [ -f destdir/src ] || die "destdir/src n'a pas été créé"
 | 
			
		||||
    diff -qr srcdir destdir || die "srcdir et destdir ne sont pas identiques"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
AUTOBUILD=
 | 
			
		||||
@ -1,13 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
 | 
			
		||||
run rm -rf src dest srcdir destdir
 | 
			
		||||
 | 
			
		||||
run mkdir srcdir
 | 
			
		||||
genfile srcdir/src <<<"file"
 | 
			
		||||
run ln -s src srcdir/link
 | 
			
		||||
genfile dest <<<"dest"
 | 
			
		||||
 | 
			
		||||
copy srcdir dest
 | 
			
		||||
info "on ne devrait pas arriver ici"
 | 
			
		||||
 | 
			
		||||
AUTOBUILD=
 | 
			
		||||
@ -1,20 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
setdists v1-d11 v2-d11 v1-d10
 | 
			
		||||
setenv IMAGE=dkbuild-tests/distversions
 | 
			
		||||
 | 
			
		||||
dockerfile
 | 
			
		||||
    # -*- coding: utf-8 mode: dockerfile -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
    FROM scratch
 | 
			
		||||
    ENV var=$DIST-$VERSION
 | 
			
		||||
build
 | 
			
		||||
 | 
			
		||||
info "vérifier les images construites avec
 | 
			
		||||
  dk ls dkbuild-tests/distversions
 | 
			
		||||
on devrait avoir les images suivantes:
 | 
			
		||||
  dkbuild-tests/distversions:v1-d10
 | 
			
		||||
  dkbuild-tests/distversions:d10 -> v1-d10
 | 
			
		||||
  dkbuild-tests/distversions:v1-d11
 | 
			
		||||
  dkbuild-tests/distversions:v2-d11
 | 
			
		||||
  dkbuild-tests/distversions:d11 -> v2-d11
 | 
			
		||||
  dkbuild-tests/distversions:latest -> v2-d11
 | 
			
		||||
"
 | 
			
		||||
@ -1,8 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
 | 
			
		||||
if runb; then
 | 
			
		||||
    qvals dkbuild -c "${DKBUILD_CONFIGS[0]}" "${DKBUILD_CMD_ARGS[@]}"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# pas de build automatique
 | 
			
		||||
AUTOBUILD=
 | 
			
		||||
@ -1,14 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
 | 
			
		||||
run rm -rf src dest srcdir destdir
 | 
			
		||||
 | 
			
		||||
genfile src <<<"file"
 | 
			
		||||
run mkdir destdir
 | 
			
		||||
 | 
			
		||||
copy src destdir
 | 
			
		||||
if run; then
 | 
			
		||||
    [ -f destdir/src ] || die "destdir/src n'a pas été créé"
 | 
			
		||||
    diff -q src destdir/src || die "src et destdir/src ne sont pas identiques"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
AUTOBUILD=
 | 
			
		||||
@ -1,13 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
 | 
			
		||||
run rm -rf src dest srcdir destdir
 | 
			
		||||
 | 
			
		||||
genfile src <<<"file"
 | 
			
		||||
 | 
			
		||||
copy src dest
 | 
			
		||||
if run; then
 | 
			
		||||
    [ -f dest ] || die "dest n'a pas été créé"
 | 
			
		||||
    diff -q src dest || die "src et dest ne sont pas identiques"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
AUTOBUILD=
 | 
			
		||||
@ -1,27 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
 | 
			
		||||
run rm -rf src dest srcdir destdir
 | 
			
		||||
 | 
			
		||||
run mkdir srcdir
 | 
			
		||||
genfile srcdir/src <<<"file"
 | 
			
		||||
run ln -s src srcdir/link
 | 
			
		||||
 | 
			
		||||
run mkdir destdir
 | 
			
		||||
genfile destdir/.gitignore <<<"/a/"
 | 
			
		||||
 | 
			
		||||
copy srcdir destdir/a gitignore=destdir
 | 
			
		||||
copy srcdir destdir/b gitignore=destdir
 | 
			
		||||
if run; then
 | 
			
		||||
    [ -f destdir/a/src ] || die "destdir/a/src n'a pas été créé"
 | 
			
		||||
    [ -f destdir/b/src ] || die "destdir/b/src n'a pas été créé"
 | 
			
		||||
    [ -L destdir/a/link ] || die "destdir/a/link n'a pas été créé"
 | 
			
		||||
    [ -L destdir/b/link ] || die "destdir/b/link n'a pas été créé"
 | 
			
		||||
    ignored="$(<destdir/.gitignore)"
 | 
			
		||||
    expected="\
 | 
			
		||||
/a/
 | 
			
		||||
/b/link
 | 
			
		||||
/b/src"
 | 
			
		||||
    [ "$ignored" == "$expected" ] || die "les fichiers n'ont pas été ignorés"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
AUTOBUILD=
 | 
			
		||||
@ -1,13 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
setdists d11 d10
 | 
			
		||||
setprofiles prod test
 | 
			
		||||
 | 
			
		||||
if dist LATEST; then
 | 
			
		||||
    info "$DIST est la distribution la plus récente"
 | 
			
		||||
fi
 | 
			
		||||
if profile DEFAULT; then
 | 
			
		||||
    info "$PROFILE est le profil par défaut"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# pas de build automatique
 | 
			
		||||
AUTOBUILD=
 | 
			
		||||
@ -1,10 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
setdists v1-d11 v2-d11 v1-d10
 | 
			
		||||
 | 
			
		||||
if dist LATEST; then
 | 
			
		||||
    info "$DIST est la distribution la plus récente"
 | 
			
		||||
fi
 | 
			
		||||
info "version=$VERSION"
 | 
			
		||||
 | 
			
		||||
# pas de build automatique
 | 
			
		||||
AUTOBUILD=
 | 
			
		||||
@ -1,10 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
setprofiles v1-prod v2-prod test
 | 
			
		||||
 | 
			
		||||
if profile DEFAULT; then
 | 
			
		||||
    info "$PROFILE est le profil par défaut"
 | 
			
		||||
fi
 | 
			
		||||
info "version=$VERSION"
 | 
			
		||||
 | 
			
		||||
# pas de build automatique
 | 
			
		||||
AUTOBUILD=
 | 
			
		||||
@ -1,16 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
 | 
			
		||||
if machine fast5; then
 | 
			
		||||
    setprofiles prod
 | 
			
		||||
elif machine fast4; then
 | 
			
		||||
    setprofiles test
 | 
			
		||||
else
 | 
			
		||||
    setprofiles devel test prod
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if run; then
 | 
			
		||||
    echo "PROFILE=$PROFILE"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# pas de build automatique
 | 
			
		||||
AUTOBUILD=
 | 
			
		||||
@ -1,16 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
 | 
			
		||||
section "première section"
 | 
			
		||||
note "une note"
 | 
			
		||||
info "une première info"
 | 
			
		||||
info "une deuxième info"
 | 
			
		||||
debug "message de debug"
 | 
			
		||||
 | 
			
		||||
section "deuxième section"
 | 
			
		||||
note "une note"
 | 
			
		||||
info "une première info"
 | 
			
		||||
info "une deuxième info"
 | 
			
		||||
debug "message de debug"
 | 
			
		||||
 | 
			
		||||
# pas de build automatique
 | 
			
		||||
AUTOBUILD=
 | 
			
		||||
@ -1,8 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
setenv IMAGE=dkbuild-tests/tags0
 | 
			
		||||
 | 
			
		||||
dockerfile
 | 
			
		||||
    # -*- coding: utf-8 mode: dockerfile -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
    FROM scratch
 | 
			
		||||
    ENV var=empty
 | 
			
		||||
build
 | 
			
		||||
@ -1,9 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
setprofiles v1-prod v2-prod
 | 
			
		||||
setenv IMAGE=dkbuild-tests/tags1
 | 
			
		||||
 | 
			
		||||
dockerfile
 | 
			
		||||
    # -*- coding: utf-8 mode: dockerfile -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
    FROM scratch
 | 
			
		||||
    ENV var=empty
 | 
			
		||||
build
 | 
			
		||||
@ -1,16 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
 | 
			
		||||
section "variables d'environnement"
 | 
			
		||||
setenv A="env A"
 | 
			
		||||
resetenv B="env B"
 | 
			
		||||
 | 
			
		||||
info "A=$A, B=$B"
 | 
			
		||||
if [ "$A" != x ]; then
 | 
			
		||||
    note "\
 | 
			
		||||
Essayer de relancer avec
 | 
			
		||||
    $(qvals "$0" -j "$(relpath "$DKBUILD")" -e A=x -e B=y)
 | 
			
		||||
on ne devrait pas pouvoir modifier la valeur de B"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# pas de build automatique
 | 
			
		||||
AUTOBUILD=
 | 
			
		||||
@ -1,15 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
 | 
			
		||||
setenv dne=1
 | 
			
		||||
setenv de=
 | 
			
		||||
 | 
			
		||||
info "dne=$dne de=$de"
 | 
			
		||||
if [ -n "$dne" -o -z "$de" ]; then
 | 
			
		||||
    note "\
 | 
			
		||||
Relancer avec
 | 
			
		||||
    $(qvals "$0" -j "$(relpath "$DKBUILD")" -e dne= -e de=1)
 | 
			
		||||
pour vérifier qu'on peut changer la valeur avec les options en ligne de commande"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
# pas de build automatique
 | 
			
		||||
AUTOBUILD=
 | 
			
		||||
@ -1,106 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: conf -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
 | 
			
		||||
[ca]
 | 
			
		||||
default_ca = dmca
 | 
			
		||||
 | 
			
		||||
[dmca]
 | 
			
		||||
dir = @@cadir@@
 | 
			
		||||
certs = $dir/certs
 | 
			
		||||
crl_dir = $dir/crl
 | 
			
		||||
database = $dir/index.txt
 | 
			
		||||
unique_subject = no
 | 
			
		||||
new_certs_dir = $dir/newcerts
 | 
			
		||||
 | 
			
		||||
certificate = $dir/dmca.crt
 | 
			
		||||
serial = $dir/serial
 | 
			
		||||
crl = $dir/dmca.crl
 | 
			
		||||
private_key = $dir/dmca.key
 | 
			
		||||
RANDFILE = $dir/private/.rand
 | 
			
		||||
 | 
			
		||||
x509_extensions = usr_cert
 | 
			
		||||
 | 
			
		||||
name_opt = ca_default
 | 
			
		||||
cert_opt = ca_default
 | 
			
		||||
 | 
			
		||||
default_days = 10950
 | 
			
		||||
default_crl_days = 30
 | 
			
		||||
default_md = sha256
 | 
			
		||||
preserve = no
 | 
			
		||||
 | 
			
		||||
policy = policy_match
 | 
			
		||||
 | 
			
		||||
[policy_match]
 | 
			
		||||
countryName = match
 | 
			
		||||
stateOrProvinceName = match
 | 
			
		||||
organizationName = match
 | 
			
		||||
organizationalUnitName = optional
 | 
			
		||||
commonName = supplied
 | 
			
		||||
emailAddress = optional
 | 
			
		||||
 | 
			
		||||
[req]
 | 
			
		||||
default_bits = 2048
 | 
			
		||||
default_md = sha256
 | 
			
		||||
default_keyfile = privkey.pem
 | 
			
		||||
distinguished_name = req_distinguished_name
 | 
			
		||||
attributes = req_attributes
 | 
			
		||||
x509_extensions = v3_ca
 | 
			
		||||
string_mask = utf8only
 | 
			
		||||
 | 
			
		||||
[req_distinguished_name]
 | 
			
		||||
countryName = Country Name (2 letter code)
 | 
			
		||||
countryName_default = FR
 | 
			
		||||
countryName_min = 2
 | 
			
		||||
countryName_max = 2
 | 
			
		||||
 | 
			
		||||
stateOrProvinceName = State or Province Name (full name)
 | 
			
		||||
stateOrProvinceName_default = La Reunion
 | 
			
		||||
 | 
			
		||||
localityName = Locality Name (eg, city)
 | 
			
		||||
localityName_default = Sainte-Clotilde
 | 
			
		||||
 | 
			
		||||
0.organizationName = Organization Name (eg, company)
 | 
			
		||||
0.organizationName_default = jclain
 | 
			
		||||
 | 
			
		||||
organizationalUnitName = Organizational Unit Name (eg, section)
 | 
			
		||||
organizationalUnitName_default = 
 | 
			
		||||
 | 
			
		||||
commonName = Common Name (eg, your name or your server\'s hostname)
 | 
			
		||||
commonName_default = dmca
 | 
			
		||||
commonName_max = 64
 | 
			
		||||
 | 
			
		||||
emailAddress = Email Address
 | 
			
		||||
emailAddress_default = jephte.clain@univ-reunion.fr
 | 
			
		||||
emailAddress_max = 64
 | 
			
		||||
 | 
			
		||||
[req_attributes]
 | 
			
		||||
challengePassword = A challenge password
 | 
			
		||||
challengePassword_min = 4
 | 
			
		||||
challengePassword_max = 20
 | 
			
		||||
 | 
			
		||||
unstructuredName = dmca
 | 
			
		||||
 | 
			
		||||
[usr_cert]
 | 
			
		||||
 | 
			
		||||
basicConstraints=CA:FALSE
 | 
			
		||||
 | 
			
		||||
nsComment = "dmca certificate"
 | 
			
		||||
 | 
			
		||||
subjectKeyIdentifier=hash
 | 
			
		||||
authorityKeyIdentifier=keyid,issuer:always
 | 
			
		||||
 | 
			
		||||
[v3_req]
 | 
			
		||||
 | 
			
		||||
basicConstraints = CA:FALSE
 | 
			
		||||
keyUsage = nonRepudiation,digitalSignature,keyEncipherment
 | 
			
		||||
 | 
			
		||||
[v3_ca]
 | 
			
		||||
 | 
			
		||||
#subjectKeyIdentifier=hash
 | 
			
		||||
#authorityKeyIdentifier=keyid:always,issuer
 | 
			
		||||
basicConstraints = critical,CA:true
 | 
			
		||||
keyUsage = critical,keyCertSign,digitalSignature,keyEncipherment,keyAgreement
 | 
			
		||||
 | 
			
		||||
[crl_ext]
 | 
			
		||||
 | 
			
		||||
#issuerAltName=issuer:copy
 | 
			
		||||
authorityKeyIdentifier=keyid:always
 | 
			
		||||
@ -1,99 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: conf -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
 | 
			
		||||
[ca]
 | 
			
		||||
default_ca = dmca
 | 
			
		||||
 | 
			
		||||
[dmca]
 | 
			
		||||
dir = @@cadir@@
 | 
			
		||||
certs = $dir/certs
 | 
			
		||||
crl_dir = $dir/crl
 | 
			
		||||
database = $dir/index.txt
 | 
			
		||||
unique_subject = no
 | 
			
		||||
new_certs_dir = $dir/newcerts
 | 
			
		||||
 | 
			
		||||
certificate = $dir/dmca.crt
 | 
			
		||||
serial = $dir/serial
 | 
			
		||||
crl = $dir/dmca.crl
 | 
			
		||||
private_key = $dir/dmca.key
 | 
			
		||||
RANDFILE = $dir/private/.rand
 | 
			
		||||
 | 
			
		||||
x509_extensions = usr_ext
 | 
			
		||||
 | 
			
		||||
name_opt = ca_default
 | 
			
		||||
cert_opt = ca_default
 | 
			
		||||
 | 
			
		||||
copy_extensions = copy
 | 
			
		||||
 | 
			
		||||
default_days = 10950
 | 
			
		||||
default_crl_days = 30
 | 
			
		||||
default_md = sha256
 | 
			
		||||
preserve = no
 | 
			
		||||
 | 
			
		||||
policy = policy_match
 | 
			
		||||
 | 
			
		||||
[policy_match]
 | 
			
		||||
#countryName = match
 | 
			
		||||
#stateOrProvinceName = match
 | 
			
		||||
#organizationName = match
 | 
			
		||||
countryName = supplied
 | 
			
		||||
stateOrProvinceName = supplied
 | 
			
		||||
organizationName = supplied
 | 
			
		||||
organizationalUnitName = optional
 | 
			
		||||
commonName = supplied
 | 
			
		||||
emailAddress = optional
 | 
			
		||||
 | 
			
		||||
[req]
 | 
			
		||||
default_bits = 2048
 | 
			
		||||
default_md = sha256
 | 
			
		||||
default_keyfile = privkey.pem
 | 
			
		||||
distinguished_name = req_distinguished_name
 | 
			
		||||
attributes = req_attributes
 | 
			
		||||
x509_extensions = usr_ext
 | 
			
		||||
string_mask = utf8only
 | 
			
		||||
 | 
			
		||||
#input_password = secret
 | 
			
		||||
#output_password = secret
 | 
			
		||||
 | 
			
		||||
[req_distinguished_name]
 | 
			
		||||
countryName = Country Name (2 letter code)
 | 
			
		||||
countryName_default = FR
 | 
			
		||||
countryName_min = 2
 | 
			
		||||
countryName_max = 2
 | 
			
		||||
 | 
			
		||||
stateOrProvinceName = State or Province Name (full name)
 | 
			
		||||
stateOrProvinceName_default = La Reunion
 | 
			
		||||
 | 
			
		||||
localityName = Locality Name (eg, city)
 | 
			
		||||
localityName_default = Sainte-Clotilde
 | 
			
		||||
 | 
			
		||||
0.organizationName = Organization Name (eg, company)
 | 
			
		||||
0.organizationName_default = jclain
 | 
			
		||||
 | 
			
		||||
organizationalUnitName = Organizational Unit Name (eg, section)
 | 
			
		||||
organizationalUnitName_default = 
 | 
			
		||||
 | 
			
		||||
commonName = Common Name (eg, your name or your server\'s hostname)
 | 
			
		||||
commonName_max = 64
 | 
			
		||||
 | 
			
		||||
emailAddress = Email Address
 | 
			
		||||
emailAddress_max = 64
 | 
			
		||||
 | 
			
		||||
[req_attributes]
 | 
			
		||||
challengePassword = A challenge password
 | 
			
		||||
challengePassword_min = 4
 | 
			
		||||
challengePassword_max = 20
 | 
			
		||||
 | 
			
		||||
unstructuredName = jclain
 | 
			
		||||
 | 
			
		||||
[usr_ext]
 | 
			
		||||
 | 
			
		||||
basicConstraints=critical,CA:FALSE
 | 
			
		||||
#subjectKeyIdentifier=hash
 | 
			
		||||
#authorityKeyIdentifier=keyid,issuer:always
 | 
			
		||||
keyUsage = critical,digitalSignature
 | 
			
		||||
extendedKeyUsage = clientAuth
 | 
			
		||||
 | 
			
		||||
[crl_ext]
 | 
			
		||||
 | 
			
		||||
#issuerAltName=issuer:copy
 | 
			
		||||
authorityKeyIdentifier=keyid:always
 | 
			
		||||
@ -1,101 +0,0 @@
 | 
			
		||||
# -*- coding: utf-8 mode: conf -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
			
		||||
 | 
			
		||||
[ca]
 | 
			
		||||
default_ca = dmca
 | 
			
		||||
 | 
			
		||||
[dmca]
 | 
			
		||||
dir = @@cadir@@
 | 
			
		||||
certs = $dir/certs
 | 
			
		||||
crl_dir = $dir/crl
 | 
			
		||||
database = $dir/index.txt
 | 
			
		||||
unique_subject = no
 | 
			
		||||
new_certs_dir = $dir/newcerts
 | 
			
		||||
 | 
			
		||||
certificate = $dir/dmca.crt
 | 
			
		||||
serial = $dir/serial
 | 
			
		||||
crl = $dir/dmca.crl
 | 
			
		||||
private_key = $dir/dmca.key
 | 
			
		||||
RANDFILE = $dir/private/.rand
 | 
			
		||||
 | 
			
		||||
x509_extensions = usr_ext
 | 
			
		||||
 | 
			
		||||
name_opt = ca_default
 | 
			
		||||
cert_opt = ca_default
 | 
			
		||||
 | 
			
		||||
copy_extensions = copy
 | 
			
		||||
 | 
			
		||||
default_days = 3650
 | 
			
		||||
default_crl_days = 30
 | 
			
		||||
default_md = sha256
 | 
			
		||||
preserve = no
 | 
			
		||||
 | 
			
		||||
policy = policy_match
 | 
			
		||||
 | 
			
		||||
[policy_match]
 | 
			
		||||
#countryName = match
 | 
			
		||||
#stateOrProvinceName = match
 | 
			
		||||
#organizationName = match
 | 
			
		||||
countryName = supplied
 | 
			
		||||
stateOrProvinceName = supplied
 | 
			
		||||
organizationName = supplied
 | 
			
		||||
organizationalUnitName = optional
 | 
			
		||||
commonName = supplied
 | 
			
		||||
emailAddress = optional
 | 
			
		||||
 | 
			
		||||
[req]
 | 
			
		||||
default_bits = 2048
 | 
			
		||||
default_md = sha256
 | 
			
		||||
default_keyfile = privkey.pem
 | 
			
		||||
distinguished_name = req_distinguished_name
 | 
			
		||||
attributes = req_attributes
 | 
			
		||||
x509_extensions = usr_ext
 | 
			
		||||
string_mask = utf8only
 | 
			
		||||
 | 
			
		||||
#input_password = secret
 | 
			
		||||
#output_password = secret
 | 
			
		||||
 | 
			
		||||
[req_distinguished_name]
 | 
			
		||||
countryName = Country Name (2 letter code)
 | 
			
		||||
countryName_default = FR
 | 
			
		||||
countryName_min = 2
 | 
			
		||||
countryName_max = 2
 | 
			
		||||
 | 
			
		||||
stateOrProvinceName = State or Province Name (full name)
 | 
			
		||||
stateOrProvinceName_default = La Reunion
 | 
			
		||||
 | 
			
		||||
localityName = Locality Name (eg, city)
 | 
			
		||||
localityName_default = Sainte-Clotilde
 | 
			
		||||
 | 
			
		||||
0.organizationName = Organization Name (eg, company)
 | 
			
		||||
0.organizationName_default = jclain
 | 
			
		||||
 | 
			
		||||
organizationalUnitName = Organizational Unit Name (eg, section)
 | 
			
		||||
organizationalUnitName_default = 
 | 
			
		||||
 | 
			
		||||
commonName = Common Name (eg, your name or your server\'s hostname)
 | 
			
		||||
commonName_max = 64
 | 
			
		||||
 | 
			
		||||
emailAddress = Email Address
 | 
			
		||||
emailAddress_max = 64
 | 
			
		||||
 | 
			
		||||
[req_attributes]
 | 
			
		||||
challengePassword = A challenge password
 | 
			
		||||
challengePassword_min = 4
 | 
			
		||||
challengePassword_max = 20
 | 
			
		||||
 | 
			
		||||
unstructuredName = jclain
 | 
			
		||||
 | 
			
		||||
[usr_ext]
 | 
			
		||||
 | 
			
		||||
basicConstraints = critical,CA:FALSE
 | 
			
		||||
#subjectKeyIdentifier=hash
 | 
			
		||||
#authorityKeyIdentifier=keyid,issuer:always
 | 
			
		||||
keyUsage = critical,digitalSignature,keyEncipherment,keyAgreement
 | 
			
		||||
extendedKeyUsage = serverAuth
 | 
			
		||||
 | 
			
		||||
subjectAltName = DNS:localhost
 | 
			
		||||
 | 
			
		||||
[crl_ext]
 | 
			
		||||
 | 
			
		||||
#issuerAltName=issuer:copy
 | 
			
		||||
authorityKeyIdentifier=keyid:always
 | 
			
		||||
							
								
								
									
										0
									
								
								lib/nulib/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								lib/nulib/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
								
								
									
										17
									
								
								lib/nulib/.project
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								lib/nulib/.project
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,17 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<projectDescription>
 | 
			
		||||
	<name>nulib</name>
 | 
			
		||||
	<comment></comment>
 | 
			
		||||
	<projects>
 | 
			
		||||
	</projects>
 | 
			
		||||
	<buildSpec>
 | 
			
		||||
		<buildCommand>
 | 
			
		||||
			<name>org.python.pydev.PyDevBuilder</name>
 | 
			
		||||
			<arguments>
 | 
			
		||||
			</arguments>
 | 
			
		||||
		</buildCommand>
 | 
			
		||||
	</buildSpec>
 | 
			
		||||
	<natures>
 | 
			
		||||
		<nature>org.python.pydev.pythonNature</nature>
 | 
			
		||||
	</natures>
 | 
			
		||||
</projectDescription>
 | 
			
		||||
							
								
								
									
										8
									
								
								lib/nulib/.pydevproject
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								lib/nulib/.pydevproject
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,8 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 | 
			
		||||
<?eclipse-pydev version="1.0"?><pydev_project>
 | 
			
		||||
<pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python interpreter</pydev_property>
 | 
			
		||||
<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">Default</pydev_property>
 | 
			
		||||
<pydev_pathproperty name="org.python.pydev.PROJECT_SOURCE_PATH">
 | 
			
		||||
<path>/${PROJECT_DIR_NAME}/python</path>
 | 
			
		||||
</pydev_pathproperty>
 | 
			
		||||
</pydev_project>
 | 
			
		||||
							
								
								
									
										5
									
								
								lib/nulib/.settings/org.eclipse.core.resources.prefs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								lib/nulib/.settings/org.eclipse.core.resources.prefs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
			
		||||
eclipse.preferences.version=1
 | 
			
		||||
encoding//python/nulib/web/bootstrap.py=utf-8
 | 
			
		||||
encoding//python/nulib/web/model.py=utf-8
 | 
			
		||||
encoding//python/nulib/web/ui.py=utf-8
 | 
			
		||||
encoding/<project>=UTF-8
 | 
			
		||||
							
								
								
									
										2
									
								
								lib/nulib/.settings/org.eclipse.core.runtime.prefs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								lib/nulib/.settings/org.eclipse.core.runtime.prefs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
			
		||||
eclipse.preferences.version=1
 | 
			
		||||
line.separator=\n
 | 
			
		||||
							
								
								
									
										4
									
								
								lib/nulib/MANIFEST.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								lib/nulib/MANIFEST.in
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,4 @@
 | 
			
		||||
global-include *
 | 
			
		||||
global-exclude *.pyc
 | 
			
		||||
exclude MANIFEST
 | 
			
		||||
prune dist
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user