Compare commits
	
		
			3 Commits
		
	
	
		
			master
			...
			wip/dkbuil
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 17aa9c2d1f | |||
| 898f553ea9 | |||
| 21583617bf | 
							
								
								
									
										37
									
								
								CHANGES.md
									
									
									
									
									
								
							
							
						
						
									
										37
									
								
								CHANGES.md
									
									
									
									
									
								
							@ -1,40 +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
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										45
									
								
								TODO.dkbuild.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								TODO.dkbuild.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,45 @@
 | 
			
		||||
# TODO
 | 
			
		||||
 | 
			
		||||
* [ ] réordonner les versions: version la plus récente en premier, pour être cohérent avec setdists
 | 
			
		||||
* [ ] gestion de la version de façon incrémentale
 | 
			
		||||
  ~~~
 | 
			
		||||
  addversion "$DIST" # est implicite
 | 
			
		||||
  addversion j11
 | 
			
		||||
  addversion 75
 | 
			
		||||
  # donne les tags suivants:
 | 
			
		||||
  # - latest $DIST j11 75 j11-$DIST 75-j11-$DIST
 | 
			
		||||
 | 
			
		||||
  addversion d12 d11 # est implicite
 | 
			
		||||
  addversion j11 j8
 | 
			
		||||
  addversion 89
 | 
			
		||||
  # donne les tags suivants:
 | 
			
		||||
  # - latest d12 j11 89 j11-d12 89-j11-d12
 | 
			
		||||
  # - j8-d12 89-j8-d12
 | 
			
		||||
  # - d11 j11-d11 89-j11-d11
 | 
			
		||||
  # - j8-d11 89-j8-d11
 | 
			
		||||
  ~~~
 | 
			
		||||
* [ ] supprimer le support des versions avec les profils et les distributions
 | 
			
		||||
* en définitive:
 | 
			
		||||
  * les versions sont indépendantes des profils et des distributions
 | 
			
		||||
  * la distribution est rajoutée implicitement à la version sauf avis contraire
 | 
			
		||||
  * pour compatibilité, les deux lignes suivantes sont équivalentes:
 | 
			
		||||
    ~~~
 | 
			
		||||
    setversion a-b-c
 | 
			
		||||
    # équivalent à
 | 
			
		||||
    addversion c; addversion b; addversion a
 | 
			
		||||
    ~~~
 | 
			
		||||
  * la version est utilisée pour construire les tags (faut-il renommer addversion en addtag?)
 | 
			
		||||
* [ ] faire tourner chaque build dans un sous-shell pour améliorer la gestion des variables
 | 
			
		||||
* [ ] comme dans runs, faire une section run: ?
 | 
			
		||||
  ATTENTION! build() déclenche AUTOBUILD=, et si on fait une section run:,
 | 
			
		||||
  cette commande ne sera pas lancée, et donc le build sera fait en deux fois
 | 
			
		||||
 | 
			
		||||
* [ ] 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
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary
 | 
			
		||||
							
								
								
									
										25
									
								
								TODO.md
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								TODO.md
									
									
									
									
									
								
							@ -1,25 +0,0 @@
 | 
			
		||||
# 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
 | 
			
		||||
11.1.0
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										33
									
								
								dk
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								dk
									
									
									
									
									
								
							@ -336,8 +336,6 @@ OPTIONS build
 | 
			
		||||
        deploy, by, bpy et update impliquent --stack
 | 
			
		||||
    -j, --no-cache
 | 
			
		||||
        Ne pas utiliser le cache lors du build
 | 
			
		||||
    --plain-output
 | 
			
		||||
        Afficher la sortie complète des containers lors du build
 | 
			
		||||
    -U, --pull
 | 
			
		||||
        Essayer de récupérer une version plus récente de l'image source
 | 
			
		||||
    -g, --ug, --no-update-apps
 | 
			
		||||
@ -1247,7 +1245,6 @@ function default_compose_build() {
 | 
			
		||||
        "${replace_env_args[@]}" "${env_args[@]}" \
 | 
			
		||||
        build \
 | 
			
		||||
        ${NO_CACHE:+--no-cache} \
 | 
			
		||||
        ${PROGRESS:+--progress "$PROGRESS"} \
 | 
			
		||||
        ${PULL:+--pull} \
 | 
			
		||||
        "${replace_build_args[@]}" "${build_args[@]}" \
 | 
			
		||||
        "$@"
 | 
			
		||||
@ -1259,7 +1256,6 @@ function default_docker_build() {
 | 
			
		||||
    done
 | 
			
		||||
    ${FAKE:+qvals} "$DOCKER" build \
 | 
			
		||||
        ${NO_CACHE:+--no-cache} \
 | 
			
		||||
        ${PROGRESS:+--progress "$PROGRESS"} \
 | 
			
		||||
        ${PULL:+--pull} \
 | 
			
		||||
        "${replace_env_args[@]}" "${env_args[@]}" \
 | 
			
		||||
        "${replace_build_args[@]}" "${build_args[@]}" \
 | 
			
		||||
@ -1309,7 +1305,6 @@ function auto_build() {
 | 
			
		||||
        done
 | 
			
		||||
        ${FAKE:+qvals} "$DOCKER" build \
 | 
			
		||||
            ${NO_CACHE:+--no-cache} \
 | 
			
		||||
            ${PROGRESS:+--progress "$PROGRESS"} \
 | 
			
		||||
            ${PULL:+--pull} \
 | 
			
		||||
            "${replace_build_args[@]}" "$@"
 | 
			
		||||
    fi
 | 
			
		||||
@ -2099,10 +2094,8 @@ function auto_composer() {
 | 
			
		||||
        esac
 | 
			
		||||
    done
 | 
			
		||||
 | 
			
		||||
    local use_runphp use_image
 | 
			
		||||
    if [ "$COMPOSER_PHP" == runphp ]; then
 | 
			
		||||
        use_runphp=1
 | 
			
		||||
    elif [ "$COMPOSER_PHP" == force -o "$COMPOSER_PHP" == any ]; then
 | 
			
		||||
    local use_image
 | 
			
		||||
    if [ "$COMPOSER_PHP" == force -o "$COMPOSER_PHP" == any ]; then
 | 
			
		||||
        use_image=1
 | 
			
		||||
    elif [ "$COMPOSER_PHP" == none -o "$COMPOSER_PHP" == system ]; then
 | 
			
		||||
        COMPOSER_PHP=none
 | 
			
		||||
@ -2123,7 +2116,7 @@ exit((PHP_VERSION_ID > $version)? 0: 1);
 | 
			
		||||
        *) ewarn "Erreur lors du lancement de PHP: est-il installé? Vous pouvez utiliser COMPOSER_PHP=any";;
 | 
			
		||||
        esac
 | 
			
		||||
    fi
 | 
			
		||||
    if [ -n "$use_runphp" -o -n "$use_image" -o "$COMPOSER_PHP" == none ]; then
 | 
			
		||||
    if [ -n "$use_image" -o "$COMPOSER_PHP" == none ]; then
 | 
			
		||||
        : # ok, on a déjà décidé
 | 
			
		||||
    elif [ -z "$COMPOSER_PHP" ]; then
 | 
			
		||||
        # pas de version minimum, tester simplement la valeur de COMPOSER_IMAGE
 | 
			
		||||
@ -2145,23 +2138,7 @@ exit((PHP_VERSION_ID < $version)? 0: 1);
 | 
			
		||||
        esac
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    if [ -n "$use_runphp" ]; then
 | 
			
		||||
        (
 | 
			
		||||
            export PROJDIR="$(pwd)"
 | 
			
		||||
            export RUNPHP_STANDALONE=
 | 
			
		||||
            RUNPHP=; DIST=; REGISTRY=
 | 
			
		||||
            if [ -f "$PROJDIR/.runphp.conf" ]; then
 | 
			
		||||
                source "$PROJDIR/.runphp.conf"
 | 
			
		||||
                [ -n "$RUNPHP" ] && exec "$PROJDIR/$RUNPHP" composer "$@"
 | 
			
		||||
            elif [ -f "$PROJDIR/sbin/runphp" ]; then
 | 
			
		||||
                exec "$PROJDIR/sbin/runphp" composer "$@"
 | 
			
		||||
            elif [ -f "$PROJDIR/runphp" ]; then
 | 
			
		||||
                exec "$PROJDIR/runphp" composer "$@"
 | 
			
		||||
            fi
 | 
			
		||||
            exec runphp composer "$@"
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    elif [ -n "$use_image" ]; then
 | 
			
		||||
    if [ -n "$use_image" ]; then
 | 
			
		||||
        [ "$COMPOSER_IMAGE" != none ] || die "Vous devez spécifier l'image à utiliser pour composer"
 | 
			
		||||
 | 
			
		||||
        local PREVIOUS_DOCKER_MACHINE_NAME="$DOCKER_MACHINE_NAME"
 | 
			
		||||
@ -2522,7 +2499,6 @@ FAKE=
 | 
			
		||||
VARS=()
 | 
			
		||||
FORCE=
 | 
			
		||||
NO_CACHE=
 | 
			
		||||
PROGRESS=
 | 
			
		||||
PULL=
 | 
			
		||||
HOST=
 | 
			
		||||
WITH_REGISTRY_AUTH=1
 | 
			
		||||
@ -2546,7 +2522,6 @@ args=(
 | 
			
		||||
    -e:,--build-arg:,--env: VARS
 | 
			
		||||
    -f,--force FORCE=1
 | 
			
		||||
    -j,--no-cache NO_CACHE=1
 | 
			
		||||
    --plain-output PROGRESS=plain
 | 
			
		||||
    -U,--pull PULL=1
 | 
			
		||||
    -h:,--host: HOST=
 | 
			
		||||
    -g,--ug,--no-update-apps update_apps_mode=b
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										117
									
								
								dkbuild
									
									
									
									
									
								
							
							
						
						
									
										117
									
								
								dkbuild
									
									
									
									
									
								
							@ -77,8 +77,6 @@ $scriptname build [OPTIONS] [BUILDVARS...]
 | 
			
		||||
        Lire un fichier de configuration au format dkbuild. Si cette option
 | 
			
		||||
        n'est pas spécifiée, les fichiers ~/.dkbuild.env et /etc/dkbuild.env
 | 
			
		||||
        sont testés dans l'ordre et automatiquement sélectionnés s'ils existent.
 | 
			
		||||
        NB: cela veut dire que si cette option est spécifiée, les fichiers
 | 
			
		||||
        ~/.dkbuild.env et /etc/dkbuild.env sont ignorés
 | 
			
		||||
        L'ordre de priorité est le suivant:
 | 
			
		||||
        - d'abord les variables spécifiées avec --env et --arg,
 | 
			
		||||
        - puis les variables définies dans ce fichier de configuration,
 | 
			
		||||
@ -102,7 +100,7 @@ $scriptname build [OPTIONS] [BUILDVARS...]
 | 
			
		||||
        le build pour toutes les distributions définies. Si la distribution
 | 
			
		||||
        sélectionnée n'est pas valide pour ce build, elle est ignorée
 | 
			
		||||
 | 
			
		||||
    -g, --profile PROFILE
 | 
			
		||||
    --profile PROFILE
 | 
			
		||||
    -P, --prod
 | 
			
		||||
    -T, --test
 | 
			
		||||
    -E, --dtest
 | 
			
		||||
@ -226,13 +224,9 @@ construites. Une version est définie en ajoutant un préfixe à la distribution
 | 
			
		||||
La commande 'setdists' permet de lister explicitement les distributions valides
 | 
			
		||||
(et les versions associées le cas échéant). Si la distribution sélectionnée par
 | 
			
		||||
l'utilisateur n'est pas dans la liste fournie, le script s'arrête sans erreur.
 | 
			
		||||
 | 
			
		||||
La première distribution listée est spéciale: c'est la distribution la plus
 | 
			
		||||
récente, celle qui reçoit le tag :latest
 | 
			
		||||
 | 
			
		||||
La distribution 'none' est spéciale aussi: elle n'est pas mentionnée dans les
 | 
			
		||||
tags automatiquement attribués aux images.
 | 
			
		||||
 | 
			
		||||
La commande 'dist' permet de tester si la distribution spécifiée en argument a
 | 
			
		||||
été sélectionnée par l'utilisateur. L'argument 'LATEST' permet de tester la
 | 
			
		||||
dernière distribution.
 | 
			
		||||
@ -684,8 +678,7 @@ Les paramètres optionnels sont
 | 
			
		||||
* set-tag=TAGS... ou set-tags=TAGS...
 | 
			
		||||
  spécifier des tags à rajouter au nom de l'image, séparés par un espace. cette
 | 
			
		||||
  liste remplace celle calculée automatiquement. ce paramètre est ignoré pour
 | 
			
		||||
  les noms d'images comportant un tag.
 | 
			
		||||
  Utiliser le tag spécial LATEST pour rajouter :latest si c'est approprié
 | 
			
		||||
  les noms d'images comportant un tag
 | 
			
		||||
* add-tag=TAGS... ou add-tags=TAGS...
 | 
			
		||||
  spécifier des tags à rajouter à la liste calculée automatiquement, séparés par
 | 
			
		||||
  un espace. ce paramètre est ignoré pour les noms d'images comportant un tag
 | 
			
		||||
@ -719,18 +712,6 @@ quelle, avec la même syntaxe qu'en ligne de commande. L'intérêt de cette
 | 
			
		||||
commande est qu'on est assuré d'utiliser le même dkbuild que celui qui traite le
 | 
			
		||||
script de build courant.
 | 
			
		||||
 | 
			
		||||
Les variables DKBUILD_CMD_ARGS, DKBUILD_CONFIGS, DKBUILD_ENVS et DKBUILD_ARGS
 | 
			
		||||
peuvent être utilisées pour reprendre les valeurs spécifiées en ligne de
 | 
			
		||||
commande, e.g"'
 | 
			
		||||
    dkbuild -c "${DKBUILD_CONFIGS[0]}" "${DKBUILD_CMD_ARGS[@]}"'"
 | 
			
		||||
 | 
			
		||||
La variable DKBUILD_CONFIGS contient les noms des fichiers de configuration
 | 
			
		||||
utilisés.
 | 
			
		||||
Les variables DKBUILD_ENVS et DKBUILD_ARGS sont indexées sur le nom des
 | 
			
		||||
variables (resp. arguments). Il est donc possible de reprendre une valeur
 | 
			
		||||
particulière, e.g"'
 | 
			
		||||
    dkbuild -c "${DKBUILD_CONFIGS[0]}" -e "${DKBUILD_ENVS[myenv]}"'"
 | 
			
		||||
 | 
			
		||||
## composer        -- gérer projet composer
 | 
			
		||||
 | 
			
		||||
USAGE: composer DESTDIR [ACTION [PARAMS] [ARGS]]
 | 
			
		||||
@ -947,10 +928,6 @@ declare -A PROTECTED_VARS=(
 | 
			
		||||
    [ENVIRON]=1
 | 
			
		||||
    [ARGS]=1
 | 
			
		||||
    [DEFAULTS]=1
 | 
			
		||||
    [DKBUILD_CMD_ARGS]=1
 | 
			
		||||
    [fill_DKBUILD_CONFIGS]=1 [DKBUILD_CONFIGS]=1
 | 
			
		||||
    [fill_DKBUILD_ENVS]=1 [DKBUILD_ENVS]=1
 | 
			
		||||
    [fill_DKBUILD_ARGS]=1 [DKBUILD_ARGS]=1
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
SHARED_LOCALS1="local PROJDIR DKBUILD CONFIG"
 | 
			
		||||
@ -964,8 +941,8 @@ SHARED_ARGS2=(
 | 
			
		||||
    -d:,--dist: DIST=
 | 
			
		||||
    -0,--d10 DIST=d10
 | 
			
		||||
    -1,--d11 DIST=d11
 | 
			
		||||
    -2,--d12 DIST=d12
 | 
			
		||||
    -3,--d13 DIST=d13
 | 
			
		||||
    -2,--d12 DIST=d11
 | 
			
		||||
    -3,--d13 DIST=d11
 | 
			
		||||
    --r7,--rhel7 DIST=rhel7
 | 
			
		||||
    --r8,--rhel8 DIST=rhel8
 | 
			
		||||
    --r9,--rhel9 DIST=rhel9
 | 
			
		||||
@ -973,7 +950,7 @@ SHARED_ARGS2=(
 | 
			
		||||
    --ol8,--oracle8 DIST=ol8
 | 
			
		||||
    --ol9,--oracle9 DIST=ol9
 | 
			
		||||
 | 
			
		||||
    -g:,--profile: PROFILE=
 | 
			
		||||
    -p:,--profile: PROFILE=
 | 
			
		||||
    -P,--prod PROFILE=prod
 | 
			
		||||
    -T,--test PROFILE=test
 | 
			
		||||
    -E,--dtest PROFILE=dtest
 | 
			
		||||
@ -985,11 +962,6 @@ SHARED_ARGS2=(
 | 
			
		||||
    --arg: '$TMPARGS+=("$value_")'
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
declare -a DKBUILD_CMD_ARGS
 | 
			
		||||
fill_DKBUILD_CONFIGS=; declare -a DKBUILD_CONFIGS
 | 
			
		||||
fill_DKBUILD_ENVS=; declare -A DKBUILD_ENVS
 | 
			
		||||
fill_DKBUILD_ARGS=; declare -A DKBUILD_ARGS
 | 
			
		||||
 | 
			
		||||
TFUNCTIONS=(
 | 
			
		||||
    # dkbuild
 | 
			
		||||
    section note info debug
 | 
			
		||||
@ -1106,13 +1078,12 @@ function reset_functions() {
 | 
			
		||||
    function include() {
 | 
			
		||||
        edebug "include $(qvals "$@")"
 | 
			
		||||
 | 
			
		||||
        local file="$1" cwd="$(pwd)"
 | 
			
		||||
        local file="$1"
 | 
			
		||||
        [ -d "$file" ] && file="$file/dkbuild"
 | 
			
		||||
        [ -f "$file" ] || die "$file: fichier introuvable"
 | 
			
		||||
        setx file=abspath "$file"
 | 
			
		||||
        cd "$(dirname "$file")"
 | 
			
		||||
        source "$file"
 | 
			
		||||
        cd "$cwd"
 | 
			
		||||
    }
 | 
			
		||||
    function machine() {
 | 
			
		||||
        local machine version
 | 
			
		||||
@ -1179,38 +1150,28 @@ function ensure_projdir() {
 | 
			
		||||
        setx CONFIG=abspath "$CONFIG"
 | 
			
		||||
        edebug "using config $CONFIG"
 | 
			
		||||
    else
 | 
			
		||||
        local config found
 | 
			
		||||
        local config
 | 
			
		||||
        for config in ~/.dkbuild.env /etc/dkbuild.env; do
 | 
			
		||||
            if [ -f "$config" ]; then
 | 
			
		||||
                found=1
 | 
			
		||||
                CONFIG="$config"
 | 
			
		||||
                edebug "using default config $CONFIG"
 | 
			
		||||
                break
 | 
			
		||||
            fi
 | 
			
		||||
        done
 | 
			
		||||
        [ -n "$found" ] || CONFIG=none
 | 
			
		||||
    fi
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function load_dkbuild() {
 | 
			
		||||
    local dkbuildenv="$PROJDIR/$(basename "$DKBUILD").env"
 | 
			
		||||
    cd "$PROJDIR"
 | 
			
		||||
 | 
			
		||||
    set_defaults dkbuild
 | 
			
		||||
 | 
			
		||||
    if [ -n "$CONFIG" ]; then
 | 
			
		||||
        if [ "$CONFIG" != none ]; then
 | 
			
		||||
            edebug "loading $CONFIG"
 | 
			
		||||
            source "$CONFIG"
 | 
			
		||||
        fi
 | 
			
		||||
        [ -n "$fill_DKBUILD_CONFIGS" ] && DKBUILD_CONFIGS+=("$CONFIG")
 | 
			
		||||
        edebug "loading $CONFIG"
 | 
			
		||||
        source "$CONFIG"
 | 
			
		||||
    fi
 | 
			
		||||
    if [ -f "$dkbuildenv" ]; then
 | 
			
		||||
        edebug "loading $dkbuildenv"
 | 
			
		||||
        source "$dkbuildenv"
 | 
			
		||||
        [ -n "$fill_DKBUILD_CONFIGS" ] && DKBUILD_CONFIGS+=("$dkbuildenv")
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    edebug "loading $DKBUILD"
 | 
			
		||||
    source "$DKBUILD"
 | 
			
		||||
}
 | 
			
		||||
@ -1221,14 +1182,12 @@ function load_environ() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function from_glob() {
 | 
			
		||||
    local vvalue=value value vfile=file file
 | 
			
		||||
    [[ "$1" != *=* ]] && { vvalue="$1"; shift; }
 | 
			
		||||
    [[ "$1" != *=* ]] && { vfile="$1"; shift; }
 | 
			
		||||
    local var=value value
 | 
			
		||||
    [[ "$1" != *=* ]] && { var="$1"; shift; }
 | 
			
		||||
 | 
			
		||||
    local basedir path extract add_prefix add_suffix
 | 
			
		||||
    local path extract add_prefix add_suffix
 | 
			
		||||
    while [ $# -gt 0 ]; do
 | 
			
		||||
        case "$1" in
 | 
			
		||||
        basedir=*) basedir="${1#basedir=}";;
 | 
			
		||||
        path=*) path="${1#path=}";;
 | 
			
		||||
        extract=*) extract="${1#extract=}";;
 | 
			
		||||
        add-prefix=*) add_prefix="${1#add-prefix=}";;
 | 
			
		||||
@ -1238,9 +1197,7 @@ function from_glob() {
 | 
			
		||||
        esac
 | 
			
		||||
        shift
 | 
			
		||||
    done
 | 
			
		||||
    [ -n "$basedir" ] || basedir=.
 | 
			
		||||
    value="$(list_all "$basedir" "$path" | sort -rn | head -1)"
 | 
			
		||||
    file="$basedir/$value"
 | 
			
		||||
    value="$(list_all . "$path" | sort -rn | head -1)"
 | 
			
		||||
    [ -n "$extract" ] || extract="${path//\*/(.*)}"
 | 
			
		||||
    if [ -n "$extract" ]; then
 | 
			
		||||
        extract="${extract//\//\\/}"
 | 
			
		||||
@ -1250,7 +1207,7 @@ function from_glob() {
 | 
			
		||||
        }")$add_suffix"
 | 
			
		||||
    fi
 | 
			
		||||
 | 
			
		||||
    local "$vvalue" "$vfile"; upvars "$vvalue" "$value" "$vfile" "$file"
 | 
			
		||||
    local "$var"; upvar "$var" "$value"
 | 
			
		||||
}
 | 
			
		||||
function define_functions_env() {
 | 
			
		||||
    function setversion() {
 | 
			
		||||
@ -1395,13 +1352,7 @@ function define_functions_env() {
 | 
			
		||||
                # Ne spécifier la valeur que si elle n'a pas déjà été définie
 | 
			
		||||
                _ENVIRON["$name"]="$value"
 | 
			
		||||
                ENVIRON["$name"]="$value"
 | 
			
		||||
                if [ -z "${PROTECTED_VARS[$name]}" ]; then
 | 
			
		||||
                    _setv "export $name" "$value"
 | 
			
		||||
                    if [ -n "$fill_DKBUILD_ENVS" ]; then
 | 
			
		||||
                        DKBUILD_ENVS["$name"]="$name=$value"
 | 
			
		||||
                        DKBUILD_CMD_ARGS+=(-e "$name=$value")
 | 
			
		||||
                    fi
 | 
			
		||||
                fi
 | 
			
		||||
                [ -z "${PROTECTED_VARS[$name]}" ] && _setv "export $name" "$value"
 | 
			
		||||
            fi
 | 
			
		||||
        done
 | 
			
		||||
    }
 | 
			
		||||
@ -1434,10 +1385,6 @@ function define_functions_env() {
 | 
			
		||||
            if [ "${ARGS[$name]-__UNDEFINED__}" == __UNDEFINED__ ]; then
 | 
			
		||||
                # Ne spécifier la valeur que si elle n'a pas déjà été définie
 | 
			
		||||
                ARGS["$name"]="$value"
 | 
			
		||||
                if [ -n "$fill_DKBUILD_ARGS" ]; then
 | 
			
		||||
                    DKBUILD_ARGS["$name"]="$name=$value"
 | 
			
		||||
                    DKBUILD_CMD_ARGS+=(--arg "$name=$value")
 | 
			
		||||
                fi
 | 
			
		||||
            fi
 | 
			
		||||
        done
 | 
			
		||||
    }
 | 
			
		||||
@ -1646,11 +1593,7 @@ function resolve_dists_profiles() {
 | 
			
		||||
    edebug "Calcul de la version par défaut"
 | 
			
		||||
    reset_functions
 | 
			
		||||
    define_functions_env
 | 
			
		||||
 | 
			
		||||
    fill_DKBUILD_ENVS=1 setenv "${TMPENVIRON[@]}"
 | 
			
		||||
    fill_DKBUILD_ARGS=1 setarg "${TMPARGS[@]}"
 | 
			
		||||
    setarg "$@"
 | 
			
		||||
    fill_DKBUILD_CONFIGS=1 load_dkbuild
 | 
			
		||||
    load_dkbuild
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function foreach_dists_profiles() {
 | 
			
		||||
@ -2099,14 +2042,6 @@ function define_functions_cmd() {
 | 
			
		||||
                    imagetags+=("$imagetag")
 | 
			
		||||
                else
 | 
			
		||||
                    for tag in "${set_tags[@]}" "${add_tags[@]}"; do
 | 
			
		||||
                        if [ "$tag" == LATEST ]; then
 | 
			
		||||
                            if [ -n "$HAVE_VERSION" -a "$VERSION" == "$LAST_VERSION" ]; then
 | 
			
		||||
                                tag=latest
 | 
			
		||||
                            else
 | 
			
		||||
                                # ignorer le tag LATEST s'il n'est pas applicable
 | 
			
		||||
                                continue
 | 
			
		||||
                            fi
 | 
			
		||||
                        fi
 | 
			
		||||
                        imagetags+=("$imagetag:$tag")
 | 
			
		||||
                    done
 | 
			
		||||
                fi
 | 
			
		||||
@ -2119,16 +2054,10 @@ function define_functions_cmd() {
 | 
			
		||||
                    imagetags+=("$imagetag")
 | 
			
		||||
                else
 | 
			
		||||
                    for tag in "${add_tags[@]}"; do
 | 
			
		||||
                        if [ "$tag" == LATEST ]; then
 | 
			
		||||
                            # toujours ignorer le tag LATEST dans add_tags
 | 
			
		||||
                            continue
 | 
			
		||||
                        fi
 | 
			
		||||
                        imagetags+=("$imagetag:$tag")
 | 
			
		||||
                    done
 | 
			
		||||
                    [ -n "$VERSION" ] && imagetags+=("$imagetag:$VERSION-$DIST")
 | 
			
		||||
                    if [ -n "$DIST" -a "$DIST" != none -a -z "$HAVE_VERSION" ]; then
 | 
			
		||||
                        imagetags+=("$imagetag:$DIST")
 | 
			
		||||
                    fi
 | 
			
		||||
                    [ -n "$DIST" -a -z "$HAVE_VERSION" ] && imagetags+=("$imagetag:$DIST")
 | 
			
		||||
                fi
 | 
			
		||||
            done
 | 
			
		||||
        fi
 | 
			
		||||
@ -2137,7 +2066,7 @@ function define_functions_cmd() {
 | 
			
		||||
                if [ -z "$HAVE_VERSION" ]; then
 | 
			
		||||
                    dist LATEST && imagetags+=("$imagetag:latest")
 | 
			
		||||
                elif [ "$VERSION" == "$LAST_VERSION" ]; then
 | 
			
		||||
                    [ "$DIST" != none ] && imagetags+=("$imagetag:$DIST")
 | 
			
		||||
                    imagetags+=("$imagetag:$DIST")
 | 
			
		||||
                    dist LATEST && imagetags+=("$imagetag:latest")
 | 
			
		||||
                fi
 | 
			
		||||
            elif [ -n "$PROFILE" ]; then
 | 
			
		||||
@ -3020,7 +2949,10 @@ function build_action() {
 | 
			
		||||
    set_machine "$machine"
 | 
			
		||||
 | 
			
		||||
    ensure_projdir
 | 
			
		||||
    resolve_dists_profiles "$@"
 | 
			
		||||
    resolve_dists_profiles
 | 
			
		||||
    setenv "${TMPENVIRON[@]}"
 | 
			
		||||
    setarg "${TMPARGS[@]}"
 | 
			
		||||
    setarg "$@"
 | 
			
		||||
 | 
			
		||||
    if [ -n "$clean_update" ]; then
 | 
			
		||||
        edebug "clean"
 | 
			
		||||
@ -3189,7 +3121,10 @@ function dump_action() {
 | 
			
		||||
    set_machine "$machine"
 | 
			
		||||
 | 
			
		||||
    ensure_projdir
 | 
			
		||||
    resolve_dists_profiles "$@"
 | 
			
		||||
    resolve_dists_profiles
 | 
			
		||||
    setenv "${TMPENVIRON[@]}"
 | 
			
		||||
    setarg "${TMPARGS[@]}"
 | 
			
		||||
    setarg "$@"
 | 
			
		||||
 | 
			
		||||
    foreach_dists_profiles _dump_each _dump_before _dump_after
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								lgrep
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								lgrep
									
									
									
									
									
								
							@ -3,10 +3,10 @@
 | 
			
		||||
source "$(dirname "$0")/lib/ulib/auto" || exit 1
 | 
			
		||||
 | 
			
		||||
function display_help() {
 | 
			
		||||
    uecho "$scriptname: frontend de grep pour chercher dans un fichier encodé en latin1
 | 
			
		||||
    uecho "$scriptname: frontend de grep pour lire des fichiers encodés en latin1
 | 
			
		||||
 | 
			
		||||
USAGE
 | 
			
		||||
    $scriptname [options] FILE
 | 
			
		||||
    $scriptname [options] files...
 | 
			
		||||
 | 
			
		||||
OPTIONS
 | 
			
		||||
        options de grep qui sont reprises telles quelles"
 | 
			
		||||
 | 
			
		||||
@ -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,19 +1,11 @@
 | 
			
		||||
# -*- 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 REGISTRY=pubdocker.univ-reunion.fr
 | 
			
		||||
    setenv PRIVAREG=pridocker.univ-reunion.fr
 | 
			
		||||
    host_mappings=(
 | 
			
		||||
        pridocker.univ-reunion.fr:10.85.1.56
 | 
			
		||||
@ -22,10 +14,7 @@ elif profile prod test; then
 | 
			
		||||
        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 REGISTRY=docker.devel.self
 | 
			
		||||
    setenv PRIVAREG=docker.devel.self
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
@ -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=
 | 
			
		||||
@ -8,7 +8,7 @@ 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)
 | 
			
		||||
    $(qvals dkbuild -j "$(relpath "$DKBUILD")" -e A=x -e B=y)
 | 
			
		||||
on ne devrait pas pouvoir modifier la valeur de B"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
@ -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=
 | 
			
		||||
@ -154,7 +154,7 @@ function ctmatch_one(ctval, ref,              parts, part, i, j, start, end, ste
 | 
			
		||||
  #print "final: is " ref " ~ " ctval " ? " (ok? "yes": "no") #DEBUG
 | 
			
		||||
  return ok
 | 
			
		||||
}
 | 
			
		||||
function ctmatch_all(M, H, dom, mon, dow, refM, refH, refdom, refmon, refdow,               Mok, Hok, alldom, domok, monok, alldow, dowok, doxok) {
 | 
			
		||||
function ctmatch_all(M, H, dom, mon, dow, refM, refH, refdom, refmon, refdow,               Mok, Hok, domok, monok, dowok) {
 | 
			
		||||
    if (refM == "**ANY**") return 1
 | 
			
		||||
 | 
			
		||||
    gsub(/\*/, "0-59", M)
 | 
			
		||||
@ -163,28 +163,16 @@ function ctmatch_all(M, H, dom, mon, dow, refM, refH, refdom, refmon, refdow,
 | 
			
		||||
    gsub(/\*/, "0-23", H)
 | 
			
		||||
    Hok = ctmatch_one(H, refH)
 | 
			
		||||
 | 
			
		||||
    alldom = dom == "*"
 | 
			
		||||
    gsub(/\*/, "1-31", dom)
 | 
			
		||||
    domok = ctmatch_one(dom, refdom)
 | 
			
		||||
 | 
			
		||||
    gsub(/\*/, "1-12", mon)
 | 
			
		||||
    monok = ctmatch_one(mon, refmon)
 | 
			
		||||
 | 
			
		||||
    alldow = dow == "*"
 | 
			
		||||
    gsub(/\*/, "1-7", dow)
 | 
			
		||||
    dowok = ctmatch_one(dow, refdow)
 | 
			
		||||
 | 
			
		||||
    if (alldom && alldow) {
 | 
			
		||||
      doxok = 1
 | 
			
		||||
    } else if (alldom) {
 | 
			
		||||
      doxok = dowok
 | 
			
		||||
    } else if (alldow) {
 | 
			
		||||
      doxok = domok
 | 
			
		||||
    } else {
 | 
			
		||||
      doxok = domok || dowok
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return Mok && Hok && monok && doxok
 | 
			
		||||
    return Mok && Hok && monok && (domok || dowok)
 | 
			
		||||
}
 | 
			
		||||
function print_cmd(cmd) {
 | 
			
		||||
  print "__ctexec " quote_value(cmd)
 | 
			
		||||
 | 
			
		||||
@ -16,7 +16,6 @@ JAVA_VMS7=(); JAVA_HOMES7=()
 | 
			
		||||
JAVA_VMS8=(); JAVA_HOMES8=()
 | 
			
		||||
JAVA_VMS11=(); JAVA_HOMES11=()
 | 
			
		||||
JAVA_VMS17=(); JAVA_HOMES17=()
 | 
			
		||||
JAVA_VMS21=(); JAVA_HOMES21=()
 | 
			
		||||
# versions locales 32 bits
 | 
			
		||||
JAVA32_VMS1_3=(); JAVA32_HOMES1_3=()
 | 
			
		||||
JAVA32_VMS1_4=(); JAVA32_HOMES1_4=()
 | 
			
		||||
@ -26,7 +25,6 @@ JAVA32_VMS7=(); JAVA32_HOMES7=()
 | 
			
		||||
JAVA32_VMS8=(); JAVA32_HOMES8=()
 | 
			
		||||
JAVA32_VMS11=(); JAVA32_HOMES11=()
 | 
			
		||||
JAVA32_VMS17=(); JAVA32_HOMES17=()
 | 
			
		||||
JAVA32_VMS21=(); JAVA32_HOMES21=()
 | 
			
		||||
# versions locales 64 bits
 | 
			
		||||
JAVA64_VMS5=(); JAVA64_HOMES5=()
 | 
			
		||||
JAVA64_VMS6=(); JAVA64_HOMES6=()
 | 
			
		||||
@ -34,7 +32,6 @@ JAVA64_VMS7=(); JAVA64_HOMES7=()
 | 
			
		||||
JAVA64_VMS8=(); JAVA64_HOMES8=()
 | 
			
		||||
JAVA64_VMS11=(); JAVA64_HOMES11=()
 | 
			
		||||
JAVA64_VMS17=(); JAVA64_HOMES17=()
 | 
			
		||||
JAVA64_VMS21=(); JAVA64_HOMES21=()
 | 
			
		||||
# version sélectionnée
 | 
			
		||||
SELECTED_JAVA_VM=; SELECTED_JAVA_HOME=
 | 
			
		||||
SELECTED_JAVA=; SELECTED_JAVAC=
 | 
			
		||||
@ -115,14 +112,6 @@ function __java_compute_vms() {
 | 
			
		||||
                __java_add HOMES8 "$HOME/opt/jvm64/$vm" 64
 | 
			
		||||
            fi
 | 
			
		||||
        done
 | 
			
		||||
        array_from_lines vms "$(list_dirs "$HOME/opt/jvm64" jdk11)"
 | 
			
		||||
        for vm in "${vms[@]}"; do
 | 
			
		||||
            v="${vm#jdk}"
 | 
			
		||||
            if [ "$v" == 11 ]; then
 | 
			
		||||
                __java_add VMS11 "$vm" 64
 | 
			
		||||
                __java_add HOMES11 "$HOME/opt/jvm64/$vm" 64
 | 
			
		||||
            fi
 | 
			
		||||
        done
 | 
			
		||||
        array_from_lines vms "$(list_dirs "$HOME/opt/jvm64" jdk17)"
 | 
			
		||||
        for vm in "${vms[@]}"; do
 | 
			
		||||
            v="${vm#jdk}"
 | 
			
		||||
@ -131,12 +120,12 @@ function __java_compute_vms() {
 | 
			
		||||
                __java_add HOMES17 "$HOME/opt/jvm64/$vm" 64
 | 
			
		||||
            fi
 | 
			
		||||
        done
 | 
			
		||||
        array_from_lines vms "$(list_dirs "$HOME/opt/jvm64" jdk21)"
 | 
			
		||||
        array_from_lines vms "$(list_dirs "$HOME/opt/jvm64" jdk11)"
 | 
			
		||||
        for vm in "${vms[@]}"; do
 | 
			
		||||
            v="${vm#jdk}"
 | 
			
		||||
            if [ "$v" == 21 ]; then
 | 
			
		||||
                __java_add VMS21 "$vm" 64
 | 
			
		||||
                __java_add HOMES21 "$HOME/opt/jvm64/$vm" 64
 | 
			
		||||
            if [ "$v" == 11 ]; then
 | 
			
		||||
                __java_add VMS11 "$vm" 64
 | 
			
		||||
                __java_add HOMES11 "$HOME/opt/jvm64/$vm" 64
 | 
			
		||||
            fi
 | 
			
		||||
        done
 | 
			
		||||
        array_from_lines vms "$(list_dirs "$HOME/opt/jvm64" "jdk1.5.*" | LANG=C sort -r)"
 | 
			
		||||
@ -169,11 +158,6 @@ function __java_compute_vms() {
 | 
			
		||||
            __java_add VMS17 "$vm" 64
 | 
			
		||||
            __java_add HOMES17 "$HOME/opt/jvm64/$vm" 64
 | 
			
		||||
        done
 | 
			
		||||
        array_from_lines vms "$(list_dirs "$HOME/opt/jvm64" "jdk-21.*" | LANG=C sort -r)"
 | 
			
		||||
        for vm in "${vms[@]}"; do
 | 
			
		||||
            __java_add VMS21 "$vm" 64
 | 
			
		||||
            __java_add HOMES21 "$HOME/opt/jvm64/$vm" 64
 | 
			
		||||
        done
 | 
			
		||||
        # Puis chercher dans les JVMs installées manuellement dans ~/opt
 | 
			
		||||
        array_from_lines vms "$(list_dirs "$HOME/opt" "sun-jdk-*")"
 | 
			
		||||
        for vm in "${vms[@]}"; do
 | 
			
		||||
@ -211,14 +195,6 @@ function __java_compute_vms() {
 | 
			
		||||
                __java_add HOMES17 "$HOME/opt/$vm"
 | 
			
		||||
            fi
 | 
			
		||||
        done
 | 
			
		||||
        array_from_lines vms "$(list_dirs "$HOME/opt" jdk21)"
 | 
			
		||||
        for vm in "${vms[@]}"; do
 | 
			
		||||
            v="${vm#jdk}"
 | 
			
		||||
            if [ "$v" == 21 ]; then
 | 
			
		||||
                __java_add VMS21 "$vm"
 | 
			
		||||
                __java_add HOMES21 "$HOME/opt/$vm"
 | 
			
		||||
            fi
 | 
			
		||||
        done
 | 
			
		||||
        array_from_lines vms "$(list_dirs "$HOME/opt" "j2sdk1.4.2*" | LANG=C sort -r)"
 | 
			
		||||
        for vm in "${vms[@]}"; do
 | 
			
		||||
            __java_add VMS1_4 "$vm"
 | 
			
		||||
@ -254,11 +230,6 @@ function __java_compute_vms() {
 | 
			
		||||
            __java_add VMS17 "$vm"
 | 
			
		||||
            __java_add HOMES17 "$HOME/opt/$vm"
 | 
			
		||||
        done
 | 
			
		||||
        array_from_lines vms "$(list_dirs "$HOME/opt" "jdk-21.*" | LANG=C sort -r)"
 | 
			
		||||
        for vm in "${vms[@]}"; do
 | 
			
		||||
            __java_add VMS21 "$vm"
 | 
			
		||||
            __java_add HOMES21 "$HOME/opt/$vm"
 | 
			
		||||
        done
 | 
			
		||||
        # Puis chercher dans les JVMs installées manuellement dans /opt
 | 
			
		||||
        array_from_lines vms "$(list_dirs "/opt" "sun-jdk-*")"
 | 
			
		||||
        for vm in "${vms[@]}"; do
 | 
			
		||||
@ -296,14 +267,6 @@ function __java_compute_vms() {
 | 
			
		||||
                __java_add HOMES17 "/opt/$vm"
 | 
			
		||||
            fi
 | 
			
		||||
        done
 | 
			
		||||
        array_from_lines vms "$(list_dirs "/opt" jdk21)"
 | 
			
		||||
        for vm in "${vms[@]}"; do
 | 
			
		||||
            v="${vm#jdk}"
 | 
			
		||||
            if [ "$v" == 21 ]; then
 | 
			
		||||
                __java_add VMS21 "$vm"
 | 
			
		||||
                __java_add HOMES21 "/opt/$vm"
 | 
			
		||||
            fi
 | 
			
		||||
        done
 | 
			
		||||
        array_from_lines vms "$(list_dirs "/opt" "j2sdk1.4.2*" | LANG=C sort -r)"
 | 
			
		||||
        for vm in "${vms[@]}"; do
 | 
			
		||||
            __java_add VMS1_4 "$vm"
 | 
			
		||||
@ -339,11 +302,6 @@ function __java_compute_vms() {
 | 
			
		||||
            __java_add VMS17 "$vm"
 | 
			
		||||
            __java_add HOMES17 "/opt/$vm"
 | 
			
		||||
        done
 | 
			
		||||
        array_from_lines vms "$(list_dirs "/opt" "jdk-21.*" | LANG=C sort -r)"
 | 
			
		||||
        for vm in "${vms[@]}"; do
 | 
			
		||||
            __java_add VMS21 "$vm"
 | 
			
		||||
            __java_add HOMES21 "/opt/$vm"
 | 
			
		||||
        done
 | 
			
		||||
        # Puis chercher dans les JVMs installées par le système dans
 | 
			
		||||
        # /usr/lib/jvm
 | 
			
		||||
        if check_sysinfos -d gentoo; then
 | 
			
		||||
@ -399,9 +357,6 @@ function __java_compute_vms() {
 | 
			
		||||
                elif [ "$v" == 17 ]; then
 | 
			
		||||
                    __java_add VMS17 "$vm"
 | 
			
		||||
                    __java_add HOMES17 "/usr/lib/jvm/$vm"
 | 
			
		||||
                elif [ "$v" == 21 ]; then
 | 
			
		||||
                    __java_add VMS21 "$vm"
 | 
			
		||||
                    __java_add HOMES21 "/usr/lib/jvm/$vm"
 | 
			
		||||
                fi
 | 
			
		||||
            done
 | 
			
		||||
            if [ -d /usr/lib/j2sdk1.4-sun ]; then
 | 
			
		||||
@ -443,7 +398,7 @@ function __java_compute_vms() {
 | 
			
		||||
 | 
			
		||||
function __java_dump_vms() {
 | 
			
		||||
    local v b i vms homes
 | 
			
		||||
    for v in 1_3 1_4 5 6 7 8 11 17 21; do
 | 
			
		||||
    for v in 1_3 1_4 5 6 7 8 11 17; do
 | 
			
		||||
        for b in "" 32 64; do
 | 
			
		||||
            vms="JAVA${b}_VMS${v}[@]"; vms=("${!vms}")
 | 
			
		||||
            homes="JAVA${b}_HOMES${v}[@]"; homes=("${!homes}")
 | 
			
		||||
@ -474,7 +429,7 @@ function __java_select_vms() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function __java_select() {
 | 
			
		||||
    # Sélectionner la version de java $1 (qui peut être 1_3, 1_4, 5, 6, 7, 8, 11, 17, 21)
 | 
			
		||||
    # Sélectionner la version de java $1 (qui peut être 1_3, 1_4, 5, 6, 7, 8, 11, 17)
 | 
			
		||||
    # Si $2 est défini, il peut s'agit de 32 ou 64 selon que l'on requière la
 | 
			
		||||
    # version 32bits ou 64 bits. Sinon, la version sélectionnée peut être 32bits
 | 
			
		||||
    # ou 64bits selon ce qui est disponible.
 | 
			
		||||
@ -518,7 +473,7 @@ function __java_select() {
 | 
			
		||||
 | 
			
		||||
function __java_select_default() {
 | 
			
		||||
    # Sélectionner la version de java par défaut. Si JAVA_HOME est défini,
 | 
			
		||||
    # prendre cette valeur. Sinon, essayer dans l'ordre 5, 6, 7, 8, 11, 17, 21 puis 1_4
 | 
			
		||||
    # prendre cette valeur. Sinon, essayer dans l'ordre 5, 6, 7, 8, 11, 17 puis 1_4
 | 
			
		||||
    # la version 1_3 n'est jamais sélectionnée automatiquement
 | 
			
		||||
    if [ -n "$JAVA_HOME" ]; then
 | 
			
		||||
        export JAVA_HOME # s'assurer que cette variable est exportée
 | 
			
		||||
@ -530,7 +485,7 @@ function __java_select_default() {
 | 
			
		||||
        return 0
 | 
			
		||||
    fi
 | 
			
		||||
    local vm
 | 
			
		||||
    for vm in 5 6 7 8 11 17 21 1_4; do
 | 
			
		||||
    for vm in 5 6 7 8 11 17 1_4; do
 | 
			
		||||
        __java_select "$vm" && return 0
 | 
			
		||||
    done
 | 
			
		||||
    return 1
 | 
			
		||||
@ -538,7 +493,7 @@ function __java_select_default() {
 | 
			
		||||
 | 
			
		||||
function select_java() {
 | 
			
		||||
    # sélectionner la version *minimum* de java correspondant à $1
 | 
			
		||||
    # $1 == 1.3|1.3+|1.4|1.4+|1.5|1.5+|1.6|1.6+|1.7|1.7+|1.8|1.8+|11|11+|17|17+|21|21+
 | 
			
		||||
    # $1 == 1.3|1.3+|1.4|1.4+|1.5|1.5+|1.6|1.6+|1.7|1.7+|1.8|1.8+|11|11+|17|17+
 | 
			
		||||
    # Si $2 est défini, il peut s'agit de 32 ou 64 selon que l'on requière la
 | 
			
		||||
    # version 32bits ou 64 bits
 | 
			
		||||
    local v vms homes
 | 
			
		||||
@ -575,17 +530,12 @@ function select_java() {
 | 
			
		||||
        done
 | 
			
		||||
        ;;
 | 
			
		||||
    11|11+)
 | 
			
		||||
        for v in 11 17 21; do
 | 
			
		||||
        for v in 11 17; do
 | 
			
		||||
            __java_select "$v" "$2" && return 0
 | 
			
		||||
        done
 | 
			
		||||
        ;;
 | 
			
		||||
    17|17+)
 | 
			
		||||
        for v in 17 21; do
 | 
			
		||||
            __java_select "$v" "$2" && return 0
 | 
			
		||||
        done
 | 
			
		||||
        ;;
 | 
			
		||||
    21|21+)
 | 
			
		||||
        for v in 21; do
 | 
			
		||||
        for v in 17; do
 | 
			
		||||
            __java_select "$v" "$2" && return 0
 | 
			
		||||
        done
 | 
			
		||||
        ;;
 | 
			
		||||
@ -595,8 +545,8 @@ function select_java() {
 | 
			
		||||
 | 
			
		||||
function select_java_exact() {
 | 
			
		||||
    # sélectionner la version *exacte* de java correspondant à $1
 | 
			
		||||
    # $1 == 1.3|1.4|1.5|1.6|1.7|1.8|11|17|21 pour une correspondance exacte
 | 
			
		||||
    # $1 == 1.3+|1.4+|1.5+|1.6+|1.7+|1.8+|11+|17+|21+ pour une version minimum
 | 
			
		||||
    # $1 == 1.3|1.4|1.5|1.6|1.7|1.8|11|17 pour une correspondance exacte
 | 
			
		||||
    # $1 == 1.3+|1.4+|1.5+|1.6+|1.7+|1.8+|11+|17+ pour une version minimum
 | 
			
		||||
    # Si $2 est défini, il peut s'agit de 32 ou 64 selon que l'on requière la
 | 
			
		||||
    # version 32bits ou 64 bits
 | 
			
		||||
    local v vms homes
 | 
			
		||||
@ -654,7 +604,7 @@ function select_java_exact() {
 | 
			
		||||
        __java_select 11 "$2" && return 0
 | 
			
		||||
        ;;
 | 
			
		||||
    11+)
 | 
			
		||||
        for v in 11 17 21; do
 | 
			
		||||
        for v in 11 17; do
 | 
			
		||||
            __java_select "$v" "$2" && return 0
 | 
			
		||||
        done
 | 
			
		||||
        ;;
 | 
			
		||||
@ -662,15 +612,7 @@ function select_java_exact() {
 | 
			
		||||
        __java_select 17 "$2" && return 0
 | 
			
		||||
        ;;
 | 
			
		||||
    17+)
 | 
			
		||||
        for v in 17 21; do
 | 
			
		||||
            __java_select "$v" "$2" && return 0
 | 
			
		||||
        done
 | 
			
		||||
        ;;
 | 
			
		||||
    21)
 | 
			
		||||
        __java_select 21 "$2" && return 0
 | 
			
		||||
        ;;
 | 
			
		||||
    21+)
 | 
			
		||||
        for v in 21; do
 | 
			
		||||
        for v in 17; do
 | 
			
		||||
            __java_select "$v" "$2" && return 0
 | 
			
		||||
        done
 | 
			
		||||
        ;;
 | 
			
		||||
@ -682,9 +624,9 @@ function select_java_any() {
 | 
			
		||||
    # Sélectionner la version exacte de java correspondant aux arguments, dans
 | 
			
		||||
    # l'ordre, jusqu'à ce qu'un argument corresponde. DEFAULT correspond à la
 | 
			
		||||
    # valeur actuelle de JAVA_HOME, si elle est définie.
 | 
			
		||||
    # Si aucun argument n'est défini, on assume "DEFAULT 5 6 7 8 11 17 21 1.4"
 | 
			
		||||
    # Si aucun argument n'est défini, on assume "DEFAULT 5 6 7 8 11 17 1.4"
 | 
			
		||||
    local v
 | 
			
		||||
    [ -n "$*" ] || set -- DEFAULT 5 6 7 8 11 17 21 1.4
 | 
			
		||||
    [ -n "$*" ] || set -- DEFAULT 5 6 7 8 11 17 1.4
 | 
			
		||||
    for v in "$@"; do
 | 
			
		||||
        if [ "$v" == DEFAULT ]; then
 | 
			
		||||
            if [ -n "$JAVA_HOME" ]; then
 | 
			
		||||
 | 
			
		||||
@ -213,7 +213,7 @@ function tl_modifyattr() {
 | 
			
		||||
      dn = ""
 | 
			
		||||
    }
 | 
			
		||||
    sub(/:+$/, "", attr)
 | 
			
		||||
    if (tolower(lastattr) != tolower(attr)) {
 | 
			
		||||
    if (lastattr != attr) {
 | 
			
		||||
      if (lastattr != "") {
 | 
			
		||||
        print "-"
 | 
			
		||||
      }
 | 
			
		||||
@ -248,7 +248,7 @@ function tl_deleteattr() {
 | 
			
		||||
      dn = ""
 | 
			
		||||
    }
 | 
			
		||||
    sub(/:+$/, "", attr)
 | 
			
		||||
    if (tolower(lastattr) != tolower(attr)) {
 | 
			
		||||
    if (lastattr != attr) {
 | 
			
		||||
      if (lastattr != "") {
 | 
			
		||||
        print "-"
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								lless
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								lless
									
									
									
									
									
								
							@ -3,10 +3,10 @@
 | 
			
		||||
source "$(dirname "$0")/lib/ulib/auto" || exit 1
 | 
			
		||||
 | 
			
		||||
function display_help() {
 | 
			
		||||
    uecho "$scriptname: frontend de less pour lire un fichier encodé en latin1
 | 
			
		||||
    uecho "$scriptname: frontend de less pour lire des fichiers encodés en latin1
 | 
			
		||||
 | 
			
		||||
USAGE
 | 
			
		||||
    $scriptname [options] FILE
 | 
			
		||||
    $scriptname [options] files...
 | 
			
		||||
 | 
			
		||||
OPTIONS
 | 
			
		||||
    -S, --chop-long-lines
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										139
									
								
								reginc
									
									
									
									
									
								
							
							
						
						
									
										139
									
								
								reginc
									
									
									
									
									
								
							@ -12,111 +12,62 @@ remplacer les nombres de FROMmin à FROMmax par leur valeur correspondante,
 | 
			
		||||
sachant que FROMmin doit être remplacé par TO. On peut mentionner autant de
 | 
			
		||||
couples (FROM, TO) que nécessaire: ils seront traités dans l'ordre
 | 
			
		||||
 | 
			
		||||
    $scriptname -r FROMmin-FROMmax TO FILEs...
 | 
			
		||||
 | 
			
		||||
renommer les fichiers en remplaçant les nombres de FROMmin à FROMmax par leur
 | 
			
		||||
valeur correspondante, sachant que FROMmin doit être remplacé par TO
 | 
			
		||||
 | 
			
		||||
OPTIONS
 | 
			
		||||
    -n, --fake
 | 
			
		||||
        Afficher le fichier tel qu'il serait modifié au lieu de le modifier en
 | 
			
		||||
        place
 | 
			
		||||
    -r, --rename
 | 
			
		||||
        Renommer les fichiers au lieu de modifier le texte à l'intérieur du
 | 
			
		||||
        fichier. Attention, l'ordre des arguments est différent avec cette
 | 
			
		||||
        option"
 | 
			
		||||
        place"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function process_file() {
 | 
			
		||||
    local file from to fromb frome seds r
 | 
			
		||||
 | 
			
		||||
    file="$1"; shift
 | 
			
		||||
    [ -n "$file" ] || die "vous devez spécifier le fichier à modifier"
 | 
			
		||||
 | 
			
		||||
    seds=
 | 
			
		||||
    while [ $# -ge 2 ]; do
 | 
			
		||||
        from="$1"
 | 
			
		||||
        if [[ "$from" == *-* ]]; then
 | 
			
		||||
            let fromb="${from%-*}"
 | 
			
		||||
            let frome="${from#*-}"
 | 
			
		||||
        else
 | 
			
		||||
            let fromb="$from"
 | 
			
		||||
            let frome="$from"
 | 
			
		||||
        fi
 | 
			
		||||
        let to="$2"; shift 2
 | 
			
		||||
 | 
			
		||||
        if [ "$to" -eq "$fromb" ]; then
 | 
			
		||||
            einfo "$fromb --> $to aucune modification n'est nécessaire"
 | 
			
		||||
 | 
			
		||||
        elif [ "$to" -lt "$fromb" ]; then
 | 
			
		||||
            einfo "$fromb-$frome --> $to-$((to+frome-fromb))"
 | 
			
		||||
 | 
			
		||||
            let from=fromb
 | 
			
		||||
            while [ "$from" -le "$frome" ]; do
 | 
			
		||||
                seds="$seds${seds:+; }s/$from/$to/g"
 | 
			
		||||
                let from=from+1
 | 
			
		||||
                let to=to+1
 | 
			
		||||
            done
 | 
			
		||||
 | 
			
		||||
        elif [ "$to" -gt "$fromb" ]; then
 | 
			
		||||
            einfo "$frome-$fromb --> $((to+frome-fromb))-$to"
 | 
			
		||||
 | 
			
		||||
            let from=frome
 | 
			
		||||
            let to=to+frome-fromb
 | 
			
		||||
            while [ "$from" -ge "$fromb" ]; do
 | 
			
		||||
                seds="$seds${seds:+; }s/$from/$to/g"
 | 
			
		||||
                let from=from-1
 | 
			
		||||
                let to=to-1
 | 
			
		||||
            done
 | 
			
		||||
        fi
 | 
			
		||||
    done
 | 
			
		||||
 | 
			
		||||
    edebug "Script sed: $seds"
 | 
			
		||||
 | 
			
		||||
    [ -n "$Fake" ] && args=() || args=(-i)
 | 
			
		||||
    args+=("$seds" "$file")
 | 
			
		||||
    sed "${args[@]}"; r=$?
 | 
			
		||||
 | 
			
		||||
    [ -z "$Fake" -a $r -eq 0 ]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Fake=
 | 
			
		||||
rename=
 | 
			
		||||
fake=
 | 
			
		||||
args=(
 | 
			
		||||
    --help '$exit_with display_help'
 | 
			
		||||
    -n,--Fake Fake=1
 | 
			
		||||
    -r,--rename rename=1
 | 
			
		||||
    -n,--fake fake=1
 | 
			
		||||
)
 | 
			
		||||
parse_args "$@"; set -- "${args[@]}"
 | 
			
		||||
 | 
			
		||||
if [ -n "$rename" ]; then
 | 
			
		||||
    from="$1"; to="$2"; shift 2
 | 
			
		||||
file="$1"; shift
 | 
			
		||||
[ -n "$file" ] || die "vous devez spécifier le fichier à modifier"
 | 
			
		||||
 | 
			
		||||
    froms=("$@")
 | 
			
		||||
    ac_set_tmpfile tmptos
 | 
			
		||||
    echo "tos=(" >>"$tmptos"
 | 
			
		||||
    for file in "${froms[@]}"; do
 | 
			
		||||
        qval "$file" >>"$tmptos"
 | 
			
		||||
    done
 | 
			
		||||
    echo ")" >>"$tmptos"
 | 
			
		||||
seds=
 | 
			
		||||
while [ $# -ge 2 ]; do
 | 
			
		||||
    from="$1"
 | 
			
		||||
    if [[ "$from" == *-* ]]; then
 | 
			
		||||
        let fromb="${from%-*}"
 | 
			
		||||
        let frome="${from#*-}"
 | 
			
		||||
    else
 | 
			
		||||
        let fromb="$from"
 | 
			
		||||
        let frome="$from"
 | 
			
		||||
    fi
 | 
			
		||||
    let to="$2"; shift 2
 | 
			
		||||
 | 
			
		||||
    Fake= process_file "$tmptos" "$from" "$to"
 | 
			
		||||
    eval "$(<"$tmptos")"
 | 
			
		||||
    if [ "$to" -eq "$fromb" ]; then
 | 
			
		||||
        einfo "$fromb --> $to aucune modification n'est nécessaire"
 | 
			
		||||
 | 
			
		||||
    i=0
 | 
			
		||||
    count=${#froms[*]}
 | 
			
		||||
    while [ $i -lt $count ]; do
 | 
			
		||||
        from="${froms[$i]}"
 | 
			
		||||
        to="${tos[$i]}"
 | 
			
		||||
        if [ "$to" == "$from" ]; then
 | 
			
		||||
            ewarn "$from: renommage non nécessaire"
 | 
			
		||||
        else
 | 
			
		||||
            estep "$from --> $to"
 | 
			
		||||
            [ -z "$Fake" ] && mv "$from" "$to"
 | 
			
		||||
        fi
 | 
			
		||||
        let i=i+1
 | 
			
		||||
    done
 | 
			
		||||
    elif [ "$to" -lt "$fromb" ]; then
 | 
			
		||||
        einfo "$fromb-$frome --> $to-$((to+frome-fromb))"
 | 
			
		||||
 | 
			
		||||
else
 | 
			
		||||
    process_file "$@"
 | 
			
		||||
fi
 | 
			
		||||
        let from=fromb
 | 
			
		||||
        while [ "$from" -le "$frome" ]; do
 | 
			
		||||
            seds="$seds${seds:+; }s/$from/$to/g"
 | 
			
		||||
            let from=from+1
 | 
			
		||||
            let to=to+1
 | 
			
		||||
        done
 | 
			
		||||
 | 
			
		||||
    elif [ "$to" -gt "$fromb" ]; then
 | 
			
		||||
        einfo "$frome-$fromb --> $((to+frome-fromb))-$to"
 | 
			
		||||
 | 
			
		||||
        let from=frome
 | 
			
		||||
        let to=to+frome-fromb
 | 
			
		||||
        while [ "$from" -ge "$fromb" ]; do
 | 
			
		||||
            seds="$seds${seds:+; }s/$from/$to/g"
 | 
			
		||||
            let from=from-1
 | 
			
		||||
            let to=to-1
 | 
			
		||||
        done
 | 
			
		||||
    fi
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
edebug "Script sed: $seds"
 | 
			
		||||
 | 
			
		||||
[ -n "$fake" ] && args=() || args=(-i)
 | 
			
		||||
args+=("$seds" "$file")
 | 
			
		||||
sed "${args[@]}"
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user