Compare commits
37 Commits
Author | SHA1 | Date | |
---|---|---|---|
3edb672410 | |||
733fdca042 | |||
7cc9629788 | |||
df3986e8dc | |||
e674b316c3 | |||
7611760c3c | |||
056ae579a9 | |||
6f9ab14ffe | |||
c9eaf7d83f | |||
693f447bf4 | |||
6e23aaeeb0 | |||
d32be911b7 | |||
89efc824f9 | |||
c69e3d414f | |||
b9f264f705 | |||
737179b81b | |||
2687e72643 | |||
0527aee96e | |||
3ac6a38e25 | |||
f156fe0b1e | |||
625d5f1d25 | |||
e30820261a | |||
5c03184c94 | |||
0ed5ddf6b9 | |||
f39787c6ec | |||
11145f686a | |||
21042e4677 | |||
e4176dfd94 | |||
1787aa2310 | |||
d1f77aa354 | |||
c2cfd7739a | |||
e7745c2dd4 | |||
ce8f541520 | |||
30594aa84b | |||
2df175ee57 | |||
fbb05f8dee | |||
2886c40aa2 |
37
CHANGES.md
37
CHANGES.md
@ -1,3 +1,40 @@
|
|||||||
|
## 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
|
## Version 11.1.0 du 01/02/2024-20:59
|
||||||
|
|
||||||
* `8570d12` pff: les répertoires liés peuvent contenir des fichiers
|
* `8570d12` pff: les répertoires liés peuvent contenir des fichiers
|
||||||
|
15
TODO.md
15
TODO.md
@ -7,4 +7,19 @@ dkbuild
|
|||||||
* si cela a du sens, une commande setlatest qui permet de désigner quelle
|
* si cela a du sens, une commande setlatest qui permet de désigner quelle
|
||||||
distribution/version est la dernière
|
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
|
-*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary
|
@ -1 +1 @@
|
|||||||
11.1.0
|
11.4.0
|
||||||
|
33
dk
33
dk
@ -336,6 +336,8 @@ OPTIONS build
|
|||||||
deploy, by, bpy et update impliquent --stack
|
deploy, by, bpy et update impliquent --stack
|
||||||
-j, --no-cache
|
-j, --no-cache
|
||||||
Ne pas utiliser le cache lors du build
|
Ne pas utiliser le cache lors du build
|
||||||
|
--plain-output
|
||||||
|
Afficher la sortie complète des containers lors du build
|
||||||
-U, --pull
|
-U, --pull
|
||||||
Essayer de récupérer une version plus récente de l'image source
|
Essayer de récupérer une version plus récente de l'image source
|
||||||
-g, --ug, --no-update-apps
|
-g, --ug, --no-update-apps
|
||||||
@ -1245,6 +1247,7 @@ function default_compose_build() {
|
|||||||
"${replace_env_args[@]}" "${env_args[@]}" \
|
"${replace_env_args[@]}" "${env_args[@]}" \
|
||||||
build \
|
build \
|
||||||
${NO_CACHE:+--no-cache} \
|
${NO_CACHE:+--no-cache} \
|
||||||
|
${PROGRESS:+--progress "$PROGRESS"} \
|
||||||
${PULL:+--pull} \
|
${PULL:+--pull} \
|
||||||
"${replace_build_args[@]}" "${build_args[@]}" \
|
"${replace_build_args[@]}" "${build_args[@]}" \
|
||||||
"$@"
|
"$@"
|
||||||
@ -1256,6 +1259,7 @@ function default_docker_build() {
|
|||||||
done
|
done
|
||||||
${FAKE:+qvals} "$DOCKER" build \
|
${FAKE:+qvals} "$DOCKER" build \
|
||||||
${NO_CACHE:+--no-cache} \
|
${NO_CACHE:+--no-cache} \
|
||||||
|
${PROGRESS:+--progress "$PROGRESS"} \
|
||||||
${PULL:+--pull} \
|
${PULL:+--pull} \
|
||||||
"${replace_env_args[@]}" "${env_args[@]}" \
|
"${replace_env_args[@]}" "${env_args[@]}" \
|
||||||
"${replace_build_args[@]}" "${build_args[@]}" \
|
"${replace_build_args[@]}" "${build_args[@]}" \
|
||||||
@ -1305,6 +1309,7 @@ function auto_build() {
|
|||||||
done
|
done
|
||||||
${FAKE:+qvals} "$DOCKER" build \
|
${FAKE:+qvals} "$DOCKER" build \
|
||||||
${NO_CACHE:+--no-cache} \
|
${NO_CACHE:+--no-cache} \
|
||||||
|
${PROGRESS:+--progress "$PROGRESS"} \
|
||||||
${PULL:+--pull} \
|
${PULL:+--pull} \
|
||||||
"${replace_build_args[@]}" "$@"
|
"${replace_build_args[@]}" "$@"
|
||||||
fi
|
fi
|
||||||
@ -2094,8 +2099,10 @@ function auto_composer() {
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
local use_image
|
local use_runphp use_image
|
||||||
if [ "$COMPOSER_PHP" == force -o "$COMPOSER_PHP" == any ]; then
|
if [ "$COMPOSER_PHP" == runphp ]; then
|
||||||
|
use_runphp=1
|
||||||
|
elif [ "$COMPOSER_PHP" == force -o "$COMPOSER_PHP" == any ]; then
|
||||||
use_image=1
|
use_image=1
|
||||||
elif [ "$COMPOSER_PHP" == none -o "$COMPOSER_PHP" == system ]; then
|
elif [ "$COMPOSER_PHP" == none -o "$COMPOSER_PHP" == system ]; then
|
||||||
COMPOSER_PHP=none
|
COMPOSER_PHP=none
|
||||||
@ -2116,7 +2123,7 @@ exit((PHP_VERSION_ID > $version)? 0: 1);
|
|||||||
*) ewarn "Erreur lors du lancement de PHP: est-il installé? Vous pouvez utiliser COMPOSER_PHP=any";;
|
*) ewarn "Erreur lors du lancement de PHP: est-il installé? Vous pouvez utiliser COMPOSER_PHP=any";;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
if [ -n "$use_image" -o "$COMPOSER_PHP" == none ]; then
|
if [ -n "$use_runphp" -o -n "$use_image" -o "$COMPOSER_PHP" == none ]; then
|
||||||
: # ok, on a déjà décidé
|
: # ok, on a déjà décidé
|
||||||
elif [ -z "$COMPOSER_PHP" ]; then
|
elif [ -z "$COMPOSER_PHP" ]; then
|
||||||
# pas de version minimum, tester simplement la valeur de COMPOSER_IMAGE
|
# pas de version minimum, tester simplement la valeur de COMPOSER_IMAGE
|
||||||
@ -2138,7 +2145,23 @@ exit((PHP_VERSION_ID < $version)? 0: 1);
|
|||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$use_image" ]; then
|
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
|
||||||
[ "$COMPOSER_IMAGE" != none ] || die "Vous devez spécifier l'image à utiliser pour composer"
|
[ "$COMPOSER_IMAGE" != none ] || die "Vous devez spécifier l'image à utiliser pour composer"
|
||||||
|
|
||||||
local PREVIOUS_DOCKER_MACHINE_NAME="$DOCKER_MACHINE_NAME"
|
local PREVIOUS_DOCKER_MACHINE_NAME="$DOCKER_MACHINE_NAME"
|
||||||
@ -2499,6 +2522,7 @@ FAKE=
|
|||||||
VARS=()
|
VARS=()
|
||||||
FORCE=
|
FORCE=
|
||||||
NO_CACHE=
|
NO_CACHE=
|
||||||
|
PROGRESS=
|
||||||
PULL=
|
PULL=
|
||||||
HOST=
|
HOST=
|
||||||
WITH_REGISTRY_AUTH=1
|
WITH_REGISTRY_AUTH=1
|
||||||
@ -2522,6 +2546,7 @@ args=(
|
|||||||
-e:,--build-arg:,--env: VARS
|
-e:,--build-arg:,--env: VARS
|
||||||
-f,--force FORCE=1
|
-f,--force FORCE=1
|
||||||
-j,--no-cache NO_CACHE=1
|
-j,--no-cache NO_CACHE=1
|
||||||
|
--plain-output PROGRESS=plain
|
||||||
-U,--pull PULL=1
|
-U,--pull PULL=1
|
||||||
-h:,--host: HOST=
|
-h:,--host: HOST=
|
||||||
-g,--ug,--no-update-apps update_apps_mode=b
|
-g,--ug,--no-update-apps update_apps_mode=b
|
||||||
|
135
dkbuild
135
dkbuild
@ -77,6 +77,8 @@ $scriptname build [OPTIONS] [BUILDVARS...]
|
|||||||
Lire un fichier de configuration au format dkbuild. Si cette option
|
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
|
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.
|
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:
|
L'ordre de priorité est le suivant:
|
||||||
- d'abord les variables spécifiées avec --env et --arg,
|
- d'abord les variables spécifiées avec --env et --arg,
|
||||||
- puis les variables définies dans ce fichier de configuration,
|
- puis les variables définies dans ce fichier de configuration,
|
||||||
@ -86,18 +88,21 @@ $scriptname build [OPTIONS] [BUILDVARS...]
|
|||||||
configuration ne doit être chargé.
|
configuration ne doit être chargé.
|
||||||
|
|
||||||
-d, --dist DIST
|
-d, --dist DIST
|
||||||
-9, --d9
|
|
||||||
-0, --d10
|
-0, --d10
|
||||||
-1, --d11
|
-1, --d11
|
||||||
|
-2, --d12
|
||||||
|
-3, --d13
|
||||||
--r7, --rhel7
|
--r7, --rhel7
|
||||||
--r8, --rhel8
|
--r8, --rhel8
|
||||||
|
--r9, --rhel9
|
||||||
--o7, --oracle7
|
--o7, --oracle7
|
||||||
--o8, --oracle8
|
--o8, --oracle8
|
||||||
|
--o9, --oracle9
|
||||||
Ne faire le build que pour la distribution spécifiée. Par défaut, faire
|
Ne faire le build que pour la distribution spécifiée. Par défaut, faire
|
||||||
le build pour toutes les distributions définies. Si la distribution
|
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
|
sélectionnée n'est pas valide pour ce build, elle est ignorée
|
||||||
|
|
||||||
--profile PROFILE
|
-g, --profile PROFILE
|
||||||
-P, --prod
|
-P, --prod
|
||||||
-T, --test
|
-T, --test
|
||||||
-E, --dtest
|
-E, --dtest
|
||||||
@ -221,9 +226,13 @@ construites. Une version est définie en ajoutant un préfixe à la distribution
|
|||||||
La commande 'setdists' permet de lister explicitement les distributions valides
|
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
|
(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.
|
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
|
La première distribution listée est spéciale: c'est la distribution la plus
|
||||||
récente, celle qui reçoit le tag :latest
|
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
|
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
|
été sélectionnée par l'utilisateur. L'argument 'LATEST' permet de tester la
|
||||||
dernière distribution.
|
dernière distribution.
|
||||||
@ -675,7 +684,8 @@ Les paramètres optionnels sont
|
|||||||
* set-tag=TAGS... ou set-tags=TAGS...
|
* set-tag=TAGS... ou set-tags=TAGS...
|
||||||
spécifier des tags à rajouter au nom de l'image, séparés par un espace. cette
|
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
|
liste remplace celle calculée automatiquement. ce paramètre est ignoré pour
|
||||||
les noms d'images comportant un tag
|
les noms d'images comportant un tag.
|
||||||
|
Utiliser le tag spécial LATEST pour rajouter :latest si c'est approprié
|
||||||
* add-tag=TAGS... ou add-tags=TAGS...
|
* add-tag=TAGS... ou add-tags=TAGS...
|
||||||
spécifier des tags à rajouter à la liste calculée automatiquement, séparés par
|
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
|
un espace. ce paramètre est ignoré pour les noms d'images comportant un tag
|
||||||
@ -709,6 +719,18 @@ 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
|
commande est qu'on est assuré d'utiliser le même dkbuild que celui qui traite le
|
||||||
script de build courant.
|
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
|
## composer -- gérer projet composer
|
||||||
|
|
||||||
USAGE: composer DESTDIR [ACTION [PARAMS] [ARGS]]
|
USAGE: composer DESTDIR [ACTION [PARAMS] [ARGS]]
|
||||||
@ -925,6 +947,10 @@ declare -A PROTECTED_VARS=(
|
|||||||
[ENVIRON]=1
|
[ENVIRON]=1
|
||||||
[ARGS]=1
|
[ARGS]=1
|
||||||
[DEFAULTS]=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"
|
SHARED_LOCALS1="local PROJDIR DKBUILD CONFIG"
|
||||||
@ -936,15 +962,18 @@ SHARED_ARGS1=(
|
|||||||
SHARED_LOCALS2="local DIST PROFILE ALL_PROFILES; local -a TMPENVIRON TMPARGS"
|
SHARED_LOCALS2="local DIST PROFILE ALL_PROFILES; local -a TMPENVIRON TMPARGS"
|
||||||
SHARED_ARGS2=(
|
SHARED_ARGS2=(
|
||||||
-d:,--dist: DIST=
|
-d:,--dist: DIST=
|
||||||
-9,--d9 DIST=d9
|
|
||||||
-0,--d10 DIST=d10
|
-0,--d10 DIST=d10
|
||||||
-1,--d11 DIST=d11
|
-1,--d11 DIST=d11
|
||||||
|
-2,--d12 DIST=d12
|
||||||
|
-3,--d13 DIST=d13
|
||||||
--r7,--rhel7 DIST=rhel7
|
--r7,--rhel7 DIST=rhel7
|
||||||
--r8,--rhel8 DIST=rhel8
|
--r8,--rhel8 DIST=rhel8
|
||||||
|
--r9,--rhel9 DIST=rhel9
|
||||||
--ol7,--oracle7 DIST=ol7
|
--ol7,--oracle7 DIST=ol7
|
||||||
--ol8,--oracle8 DIST=ol8
|
--ol8,--oracle8 DIST=ol8
|
||||||
|
--ol9,--oracle9 DIST=ol9
|
||||||
|
|
||||||
-p:,--profile: PROFILE=
|
-g:,--profile: PROFILE=
|
||||||
-P,--prod PROFILE=prod
|
-P,--prod PROFILE=prod
|
||||||
-T,--test PROFILE=test
|
-T,--test PROFILE=test
|
||||||
-E,--dtest PROFILE=dtest
|
-E,--dtest PROFILE=dtest
|
||||||
@ -956,6 +985,11 @@ SHARED_ARGS2=(
|
|||||||
--arg: '$TMPARGS+=("$value_")'
|
--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=(
|
TFUNCTIONS=(
|
||||||
# dkbuild
|
# dkbuild
|
||||||
section note info debug
|
section note info debug
|
||||||
@ -1072,12 +1106,13 @@ function reset_functions() {
|
|||||||
function include() {
|
function include() {
|
||||||
edebug "include $(qvals "$@")"
|
edebug "include $(qvals "$@")"
|
||||||
|
|
||||||
local file="$1"
|
local file="$1" cwd="$(pwd)"
|
||||||
[ -d "$file" ] && file="$file/dkbuild"
|
[ -d "$file" ] && file="$file/dkbuild"
|
||||||
[ -f "$file" ] || die "$file: fichier introuvable"
|
[ -f "$file" ] || die "$file: fichier introuvable"
|
||||||
setx file=abspath "$file"
|
setx file=abspath "$file"
|
||||||
cd "$(dirname "$file")"
|
cd "$(dirname "$file")"
|
||||||
source "$file"
|
source "$file"
|
||||||
|
cd "$cwd"
|
||||||
}
|
}
|
||||||
function machine() {
|
function machine() {
|
||||||
local machine version
|
local machine version
|
||||||
@ -1144,28 +1179,38 @@ function ensure_projdir() {
|
|||||||
setx CONFIG=abspath "$CONFIG"
|
setx CONFIG=abspath "$CONFIG"
|
||||||
edebug "using config $CONFIG"
|
edebug "using config $CONFIG"
|
||||||
else
|
else
|
||||||
local config
|
local config found
|
||||||
for config in ~/.dkbuild.env /etc/dkbuild.env; do
|
for config in ~/.dkbuild.env /etc/dkbuild.env; do
|
||||||
if [ -f "$config" ]; then
|
if [ -f "$config" ]; then
|
||||||
|
found=1
|
||||||
CONFIG="$config"
|
CONFIG="$config"
|
||||||
edebug "using default config $CONFIG"
|
edebug "using default config $CONFIG"
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
[ -n "$found" ] || CONFIG=none
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function load_dkbuild() {
|
function load_dkbuild() {
|
||||||
local dkbuildenv="$PROJDIR/$(basename "$DKBUILD").env"
|
local dkbuildenv="$PROJDIR/$(basename "$DKBUILD").env"
|
||||||
cd "$PROJDIR"
|
cd "$PROJDIR"
|
||||||
|
|
||||||
|
set_defaults dkbuild
|
||||||
|
|
||||||
if [ -n "$CONFIG" ]; then
|
if [ -n "$CONFIG" ]; then
|
||||||
edebug "loading $CONFIG"
|
if [ "$CONFIG" != none ]; then
|
||||||
source "$CONFIG"
|
edebug "loading $CONFIG"
|
||||||
|
source "$CONFIG"
|
||||||
|
fi
|
||||||
|
[ -n "$fill_DKBUILD_CONFIGS" ] && DKBUILD_CONFIGS+=("$CONFIG")
|
||||||
fi
|
fi
|
||||||
if [ -f "$dkbuildenv" ]; then
|
if [ -f "$dkbuildenv" ]; then
|
||||||
edebug "loading $dkbuildenv"
|
edebug "loading $dkbuildenv"
|
||||||
source "$dkbuildenv"
|
source "$dkbuildenv"
|
||||||
|
[ -n "$fill_DKBUILD_CONFIGS" ] && DKBUILD_CONFIGS+=("$dkbuildenv")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
edebug "loading $DKBUILD"
|
edebug "loading $DKBUILD"
|
||||||
source "$DKBUILD"
|
source "$DKBUILD"
|
||||||
}
|
}
|
||||||
@ -1176,12 +1221,14 @@ function load_environ() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function from_glob() {
|
function from_glob() {
|
||||||
local var=value value
|
local vvalue=value value vfile=file file
|
||||||
[[ "$1" != *=* ]] && { var="$1"; shift; }
|
[[ "$1" != *=* ]] && { vvalue="$1"; shift; }
|
||||||
|
[[ "$1" != *=* ]] && { vfile="$1"; shift; }
|
||||||
|
|
||||||
local path extract add_prefix add_suffix
|
local basedir path extract add_prefix add_suffix
|
||||||
while [ $# -gt 0 ]; do
|
while [ $# -gt 0 ]; do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
|
basedir=*) basedir="${1#basedir=}";;
|
||||||
path=*) path="${1#path=}";;
|
path=*) path="${1#path=}";;
|
||||||
extract=*) extract="${1#extract=}";;
|
extract=*) extract="${1#extract=}";;
|
||||||
add-prefix=*) add_prefix="${1#add-prefix=}";;
|
add-prefix=*) add_prefix="${1#add-prefix=}";;
|
||||||
@ -1191,7 +1238,9 @@ function from_glob() {
|
|||||||
esac
|
esac
|
||||||
shift
|
shift
|
||||||
done
|
done
|
||||||
value="$(list_all . "$path" | sort -rn | head -1)"
|
[ -n "$basedir" ] || basedir=.
|
||||||
|
value="$(list_all "$basedir" "$path" | sort -rn | head -1)"
|
||||||
|
file="$basedir/$value"
|
||||||
[ -n "$extract" ] || extract="${path//\*/(.*)}"
|
[ -n "$extract" ] || extract="${path//\*/(.*)}"
|
||||||
if [ -n "$extract" ]; then
|
if [ -n "$extract" ]; then
|
||||||
extract="${extract//\//\\/}"
|
extract="${extract//\//\\/}"
|
||||||
@ -1201,7 +1250,7 @@ function from_glob() {
|
|||||||
}")$add_suffix"
|
}")$add_suffix"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local "$var"; upvar "$var" "$value"
|
local "$vvalue" "$vfile"; upvars "$vvalue" "$value" "$vfile" "$file"
|
||||||
}
|
}
|
||||||
function define_functions_env() {
|
function define_functions_env() {
|
||||||
function setversion() {
|
function setversion() {
|
||||||
@ -1346,7 +1395,13 @@ function define_functions_env() {
|
|||||||
# Ne spécifier la valeur que si elle n'a pas déjà été définie
|
# Ne spécifier la valeur que si elle n'a pas déjà été définie
|
||||||
_ENVIRON["$name"]="$value"
|
_ENVIRON["$name"]="$value"
|
||||||
ENVIRON["$name"]="$value"
|
ENVIRON["$name"]="$value"
|
||||||
[ -z "${PROTECTED_VARS[$name]}" ] && _setv "export $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
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
@ -1379,6 +1434,10 @@ function define_functions_env() {
|
|||||||
if [ "${ARGS[$name]-__UNDEFINED__}" == __UNDEFINED__ ]; then
|
if [ "${ARGS[$name]-__UNDEFINED__}" == __UNDEFINED__ ]; then
|
||||||
# Ne spécifier la valeur que si elle n'a pas déjà été définie
|
# Ne spécifier la valeur que si elle n'a pas déjà été définie
|
||||||
ARGS["$name"]="$value"
|
ARGS["$name"]="$value"
|
||||||
|
if [ -n "$fill_DKBUILD_ARGS" ]; then
|
||||||
|
DKBUILD_ARGS["$name"]="$name=$value"
|
||||||
|
DKBUILD_CMD_ARGS+=(--arg "$name=$value")
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
@ -1587,7 +1646,11 @@ function resolve_dists_profiles() {
|
|||||||
edebug "Calcul de la version par défaut"
|
edebug "Calcul de la version par défaut"
|
||||||
reset_functions
|
reset_functions
|
||||||
define_functions_env
|
define_functions_env
|
||||||
load_dkbuild
|
|
||||||
|
fill_DKBUILD_ENVS=1 setenv "${TMPENVIRON[@]}"
|
||||||
|
fill_DKBUILD_ARGS=1 setarg "${TMPARGS[@]}"
|
||||||
|
setarg "$@"
|
||||||
|
fill_DKBUILD_CONFIGS=1 load_dkbuild
|
||||||
}
|
}
|
||||||
|
|
||||||
function foreach_dists_profiles() {
|
function foreach_dists_profiles() {
|
||||||
@ -2036,6 +2099,14 @@ function define_functions_cmd() {
|
|||||||
imagetags+=("$imagetag")
|
imagetags+=("$imagetag")
|
||||||
else
|
else
|
||||||
for tag in "${set_tags[@]}" "${add_tags[@]}"; do
|
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")
|
imagetags+=("$imagetag:$tag")
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
@ -2048,10 +2119,16 @@ function define_functions_cmd() {
|
|||||||
imagetags+=("$imagetag")
|
imagetags+=("$imagetag")
|
||||||
else
|
else
|
||||||
for tag in "${add_tags[@]}"; do
|
for tag in "${add_tags[@]}"; do
|
||||||
|
if [ "$tag" == LATEST ]; then
|
||||||
|
# toujours ignorer le tag LATEST dans add_tags
|
||||||
|
continue
|
||||||
|
fi
|
||||||
imagetags+=("$imagetag:$tag")
|
imagetags+=("$imagetag:$tag")
|
||||||
done
|
done
|
||||||
[ -n "$VERSION" ] && imagetags+=("$imagetag:$VERSION-$DIST")
|
[ -n "$VERSION" ] && imagetags+=("$imagetag:$VERSION-$DIST")
|
||||||
[ -n "$DIST" -a -z "$HAVE_VERSION" ] && imagetags+=("$imagetag:$DIST")
|
if [ -n "$DIST" -a "$DIST" != none -a -z "$HAVE_VERSION" ]; then
|
||||||
|
imagetags+=("$imagetag:$DIST")
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
@ -2060,7 +2137,7 @@ function define_functions_cmd() {
|
|||||||
if [ -z "$HAVE_VERSION" ]; then
|
if [ -z "$HAVE_VERSION" ]; then
|
||||||
dist LATEST && imagetags+=("$imagetag:latest")
|
dist LATEST && imagetags+=("$imagetag:latest")
|
||||||
elif [ "$VERSION" == "$LAST_VERSION" ]; then
|
elif [ "$VERSION" == "$LAST_VERSION" ]; then
|
||||||
imagetags+=("$imagetag:$DIST")
|
[ "$DIST" != none ] && imagetags+=("$imagetag:$DIST")
|
||||||
dist LATEST && imagetags+=("$imagetag:latest")
|
dist LATEST && imagetags+=("$imagetag:latest")
|
||||||
fi
|
fi
|
||||||
elif [ -n "$PROFILE" ]; then
|
elif [ -n "$PROFILE" ]; then
|
||||||
@ -2943,10 +3020,7 @@ function build_action() {
|
|||||||
set_machine "$machine"
|
set_machine "$machine"
|
||||||
|
|
||||||
ensure_projdir
|
ensure_projdir
|
||||||
resolve_dists_profiles
|
resolve_dists_profiles "$@"
|
||||||
setenv "${TMPENVIRON[@]}"
|
|
||||||
setarg "${TMPARGS[@]}"
|
|
||||||
setarg "$@"
|
|
||||||
|
|
||||||
if [ -n "$clean_update" ]; then
|
if [ -n "$clean_update" ]; then
|
||||||
edebug "clean"
|
edebug "clean"
|
||||||
@ -2983,10 +3057,10 @@ function _build_before() {
|
|||||||
PREV_PROFILE=
|
PREV_PROFILE=
|
||||||
}
|
}
|
||||||
function _build_each() {
|
function _build_each() {
|
||||||
if [ "$PROFILE-$PVERSION" != "$PREV_PROFILE" ]; then
|
|
||||||
[ -n "$PREV_PROFILE" ] && eend
|
|
||||||
fi
|
|
||||||
if [ -n "$DIST" -a "$DIST-$DVERSION" != "$PREV_DIST" ]; then
|
if [ -n "$DIST" -a "$DIST-$DVERSION" != "$PREV_DIST" ]; then
|
||||||
|
[ -n "$PREV_PROFILE" ] && eend
|
||||||
|
PREV_PROFILE=
|
||||||
|
|
||||||
[ -n "$PREV_DIST" ] && eend
|
[ -n "$PREV_DIST" ] && eend
|
||||||
PREV_DIST="$DIST-$DVERSION"
|
PREV_DIST="$DIST-$DVERSION"
|
||||||
etitle "Distribution ${DVERSION:+$DVERSION-}$DIST"
|
etitle "Distribution ${DVERSION:+$DVERSION-}$DIST"
|
||||||
@ -3115,10 +3189,7 @@ function dump_action() {
|
|||||||
set_machine "$machine"
|
set_machine "$machine"
|
||||||
|
|
||||||
ensure_projdir
|
ensure_projdir
|
||||||
resolve_dists_profiles
|
resolve_dists_profiles "$@"
|
||||||
setenv "${TMPENVIRON[@]}"
|
|
||||||
setarg "${TMPARGS[@]}"
|
|
||||||
setarg "$@"
|
|
||||||
|
|
||||||
foreach_dists_profiles _dump_each _dump_before _dump_after
|
foreach_dists_profiles _dump_each _dump_before _dump_after
|
||||||
}
|
}
|
||||||
@ -3128,10 +3199,10 @@ function _dump_before() {
|
|||||||
PREV_PROFILE=
|
PREV_PROFILE=
|
||||||
}
|
}
|
||||||
function _dump_each() {
|
function _dump_each() {
|
||||||
if [ "$PROFILE-$PVERSION" != "$PREV_PROFILE" ]; then
|
|
||||||
[ -n "$PREV_PROFILE" ] && eend
|
|
||||||
fi
|
|
||||||
if [ -n "$DIST" -a "$DIST-$DVERSION" != "$PREV_DIST" ]; then
|
if [ -n "$DIST" -a "$DIST-$DVERSION" != "$PREV_DIST" ]; then
|
||||||
|
[ -n "$PREV_PROFILE" ] && eend
|
||||||
|
PREV_PROFILE=
|
||||||
|
|
||||||
[ -n "$PREV_DIST" ] && eend
|
[ -n "$PREV_DIST" ] && eend
|
||||||
PREV_DIST="$DIST-$DVERSION"
|
PREV_DIST="$DIST-$DVERSION"
|
||||||
etitle "Distribution ${DVERSION:+$DVERSION-}$DIST"
|
etitle "Distribution ${DVERSION:+$DVERSION-}$DIST"
|
||||||
|
4
lgrep
4
lgrep
@ -3,10 +3,10 @@
|
|||||||
source "$(dirname "$0")/lib/ulib/auto" || exit 1
|
source "$(dirname "$0")/lib/ulib/auto" || exit 1
|
||||||
|
|
||||||
function display_help() {
|
function display_help() {
|
||||||
uecho "$scriptname: frontend de grep pour lire des fichiers encodés en latin1
|
uecho "$scriptname: frontend de grep pour chercher dans un fichier encodé en latin1
|
||||||
|
|
||||||
USAGE
|
USAGE
|
||||||
$scriptname [options] files...
|
$scriptname [options] FILE
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
options de grep qui sont reprises telles quelles"
|
options de grep qui sont reprises telles quelles"
|
||||||
|
4
lib/default/dkbuild
Normal file
4
lib/default/dkbuild
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# -*- 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,11 +1,19 @@
|
|||||||
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
||||||
default_profile "${DKBUILD_PROFILE:-prod}"
|
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
|
if profile jclain; then
|
||||||
setenv REGISTRY=docker.jclain.fr
|
setenv REGISTRY=docker.jclain.fr
|
||||||
setenv PRIVAREG=docker.jclain.fr
|
setenv PRIVAREG=docker.jclain.fr
|
||||||
elif profile prod test; then
|
elif profile prod test; then
|
||||||
setenv REGISTRY=pubdocker.univ-reunion.fr
|
setenv REGISTRY=pubdocker.univ-reunion.fr/rununiv
|
||||||
setenv PRIVAREG=pridocker.univ-reunion.fr
|
setenv PRIVAREG=pridocker.univ-reunion.fr
|
||||||
host_mappings=(
|
host_mappings=(
|
||||||
pridocker.univ-reunion.fr:10.85.1.56
|
pridocker.univ-reunion.fr:10.85.1.56
|
||||||
@ -14,7 +22,10 @@ elif profile prod test; then
|
|||||||
git.univ-reunion.fr:10.85.1.55
|
git.univ-reunion.fr:10.85.1.55
|
||||||
)
|
)
|
||||||
default docker host-mappings="${host_mappings[*]}"
|
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
|
elif profile devel; then
|
||||||
setenv REGISTRY=docker.devel.self
|
setenv REGISTRY=docker.devel.self/rununiv
|
||||||
setenv PRIVAREG=docker.devel.self
|
setenv PRIVAREG=docker.devel.self
|
||||||
fi
|
fi
|
||||||
|
8
lib/dkbuild/tests/test-dkbuild
Normal file
8
lib/dkbuild/tests/test-dkbuild
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
# -*- 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
|
if [ "$A" != x ]; then
|
||||||
note "\
|
note "\
|
||||||
Essayer de relancer avec
|
Essayer de relancer avec
|
||||||
$(qvals dkbuild -j "$(relpath "$DKBUILD")" -e A=x -e B=y)
|
$(qvals "$0" -j "$(relpath "$DKBUILD")" -e A=x -e B=y)
|
||||||
on ne devrait pas pouvoir modifier la valeur de B"
|
on ne devrait pas pouvoir modifier la valeur de B"
|
||||||
fi
|
fi
|
||||||
|
|
15
lib/dkbuild/tests/test-vars1
Normal file
15
lib/dkbuild/tests/test-vars1
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# -*- 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=
|
@ -1424,7 +1424,7 @@ function is_archive() {
|
|||||||
name="${name%.jar}"
|
name="${name%.jar}"
|
||||||
name="${name%.war}"
|
name="${name%.war}"
|
||||||
name="${name%.ear}"
|
name="${name%.ear}"
|
||||||
[ "$NUTOOLS_SH_ARCHIVE_SUPPORT" ] && name="${name%.sh}"
|
[ -n "$NUTOOLS_SH_ARCHIVE_SUPPORT" ] && name="${name%.sh}"
|
||||||
[ "$name" != "$1" ]
|
[ "$name" != "$1" ]
|
||||||
}
|
}
|
||||||
function extract_archive() {
|
function extract_archive() {
|
||||||
@ -1446,7 +1446,7 @@ function extract_archive() {
|
|||||||
cd "$destdir"
|
cd "$destdir"
|
||||||
jar xf "$arch" "$@"
|
jar xf "$arch" "$@"
|
||||||
) || return
|
) || return
|
||||||
elif [ "$NUTOOLS_SH_ARCHIVE_SUPPORT" ] && endswith "$arch" .sh; then
|
elif [ -n "$NUTOOLS_SH_ARCHIVE_SUPPORT" ] && endswith "$arch" .sh; then
|
||||||
(
|
(
|
||||||
arch="$(abspath "$arch")"
|
arch="$(abspath "$arch")"
|
||||||
cd "$destdir"
|
cd "$destdir"
|
||||||
@ -1469,7 +1469,7 @@ function get_archive_basename() {
|
|||||||
basename="${basename%.jar}"
|
basename="${basename%.jar}"
|
||||||
basename="${basename%.war}"
|
basename="${basename%.war}"
|
||||||
basename="${basename%.ear}"
|
basename="${basename%.ear}"
|
||||||
[ "$NUTOOLS_SH_ARCHIVE_SUPPORT" ] && basename="${basename%.sh}"
|
[ -n "$NUTOOLS_SH_ARCHIVE_SUPPORT" ] && basename="${basename%.sh}"
|
||||||
# résultat
|
# résultat
|
||||||
echo "$basename"
|
echo "$basename"
|
||||||
}
|
}
|
||||||
@ -1489,10 +1489,13 @@ function get_archive_appname() {
|
|||||||
appname="${appname%.jar}"
|
appname="${appname%.jar}"
|
||||||
appname="${appname%.war}"
|
appname="${appname%.war}"
|
||||||
appname="${appname%.ear}"
|
appname="${appname%.ear}"
|
||||||
[ "$NUTOOLS_SH_ARCHIVE_SUPPORT" ] && appname="${appname%.sh}"
|
[ -n "$NUTOOLS_SH_ARCHIVE_SUPPORT" ] && appname="${appname%.sh}"
|
||||||
# supprimer la version et afficher
|
# supprimer la version et afficher
|
||||||
echo "$appname" | awk '{
|
echo "$appname" | awk '{
|
||||||
if (match($0, /[-_.]([0-9]+([-_.][0-9]+)*([a-zA-Z][0-9]*|[-_.][0-9]+[a-zA-Z][0-9]*)?)$/)) {
|
if (match($0, /-([0-9]{5}(_(VA|VSR)[0-9]+)?)$/, vs)) {
|
||||||
|
# version style AMUE, e.g 64070 ou 64070_VA1
|
||||||
|
print substr($0, 1, RSTART - 1)
|
||||||
|
} else if (match($0, /[-_.]([0-9]+([-_.][0-9]+)*([a-zA-Z][0-9]*|[-_.][0-9]+[a-zA-Z][0-9]*)?)$/)) {
|
||||||
print substr($0, 1, RSTART - 1)
|
print substr($0, 1, RSTART - 1)
|
||||||
} else if (match($0, /([0-9]+([-_.][0-9]+)*([a-zA-Z][0-9]*|[-_.][0-9]+[a-zA-Z][0-9]*)?)$/)) {
|
} else if (match($0, /([0-9]+([-_.][0-9]+)*([a-zA-Z][0-9]*|[-_.][0-9]+[a-zA-Z][0-9]*)?)$/)) {
|
||||||
print substr($0, 1, RSTART - 1)
|
print substr($0, 1, RSTART - 1)
|
||||||
@ -1511,7 +1514,10 @@ function get_archive_versionsuffix() {
|
|||||||
# --> -0.1
|
# --> -0.1
|
||||||
local basename="$(get_archive_basename "$1")"
|
local basename="$(get_archive_basename "$1")"
|
||||||
echo "$basename" | awk '{
|
echo "$basename" | awk '{
|
||||||
if (match($0, /([-_.][0-9]+([-_.][0-9]+)*([a-zA-Z][0-9]*|[-_.][0-9]+[a-zA-Z][0-9]*)?)$/, vs)) {
|
if (match($0, /(-[0-9]{5}(_(VA|VSR)[0-9]+)?)$/, vs)) {
|
||||||
|
# version style AMUE, e.g 64070 ou 64070_VA1
|
||||||
|
print vs["1"]
|
||||||
|
} else if (match($0, /([-_.][0-9]+([-_.][0-9]+)*([a-zA-Z][0-9]*|[-_.][0-9]+[a-zA-Z][0-9]*)?)$/, vs)) {
|
||||||
print vs["1"]
|
print vs["1"]
|
||||||
} else if (match($0, /([0-9]+([-_.][0-9]+)*([a-zA-Z][0-9]*|[-_.][0-9]+[a-zA-Z][0-9]*)?)$/, vs)) {
|
} else if (match($0, /([0-9]+([-_.][0-9]+)*([a-zA-Z][0-9]*|[-_.][0-9]+[a-zA-Z][0-9]*)?)$/, vs)) {
|
||||||
print vs["1"]
|
print vs["1"]
|
||||||
@ -1528,7 +1534,10 @@ function get_archive_version() {
|
|||||||
# --> 0.1
|
# --> 0.1
|
||||||
local basename="$(get_archive_basename "$1")"
|
local basename="$(get_archive_basename "$1")"
|
||||||
echo "$basename" | awk '{
|
echo "$basename" | awk '{
|
||||||
if (match($0, /[-_.]([0-9]+([-_.][0-9]+)*([a-zA-Z][0-9]*|[-_.][0-9]+[a-zA-Z][0-9]*)?)$/, vs)) {
|
if (match($0, /-([0-9]{5}(_(VA|VSR)[0-9]+)?)$/, vs)) {
|
||||||
|
# version style AMUE, e.g 64070 ou 64070_VA1
|
||||||
|
print vs["1"]
|
||||||
|
} else if (match($0, /[-_.]([0-9]+([-_.][0-9]+)*([a-zA-Z][0-9]*|[-_.][0-9]+[a-zA-Z][0-9]*)?)$/, vs)) {
|
||||||
print vs["1"]
|
print vs["1"]
|
||||||
} else if (match($0, /([0-9]+([-_.][0-9]+)*([a-zA-Z][0-9]*|[-_.][0-9]+[a-zA-Z][0-9]*)?)$/, vs)) {
|
} else if (match($0, /([0-9]+([-_.][0-9]+)*([a-zA-Z][0-9]*|[-_.][0-9]+[a-zA-Z][0-9]*)?)$/, vs)) {
|
||||||
print vs["1"]
|
print vs["1"]
|
||||||
|
@ -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
|
#print "final: is " ref " ~ " ctval " ? " (ok? "yes": "no") #DEBUG
|
||||||
return ok
|
return ok
|
||||||
}
|
}
|
||||||
function ctmatch_all(M, H, dom, mon, dow, refM, refH, refdom, refmon, refdow, Mok, Hok, domok, monok, dowok) {
|
function ctmatch_all(M, H, dom, mon, dow, refM, refH, refdom, refmon, refdow, Mok, Hok, alldom, domok, monok, alldow, dowok, doxok) {
|
||||||
if (refM == "**ANY**") return 1
|
if (refM == "**ANY**") return 1
|
||||||
|
|
||||||
gsub(/\*/, "0-59", M)
|
gsub(/\*/, "0-59", M)
|
||||||
@ -163,16 +163,28 @@ function ctmatch_all(M, H, dom, mon, dow, refM, refH, refdom, refmon, refdow,
|
|||||||
gsub(/\*/, "0-23", H)
|
gsub(/\*/, "0-23", H)
|
||||||
Hok = ctmatch_one(H, refH)
|
Hok = ctmatch_one(H, refH)
|
||||||
|
|
||||||
|
alldom = dom == "*"
|
||||||
gsub(/\*/, "1-31", dom)
|
gsub(/\*/, "1-31", dom)
|
||||||
domok = ctmatch_one(dom, refdom)
|
domok = ctmatch_one(dom, refdom)
|
||||||
|
|
||||||
gsub(/\*/, "1-12", mon)
|
gsub(/\*/, "1-12", mon)
|
||||||
monok = ctmatch_one(mon, refmon)
|
monok = ctmatch_one(mon, refmon)
|
||||||
|
|
||||||
|
alldow = dow == "*"
|
||||||
gsub(/\*/, "1-7", dow)
|
gsub(/\*/, "1-7", dow)
|
||||||
dowok = ctmatch_one(dow, refdow)
|
dowok = ctmatch_one(dow, refdow)
|
||||||
|
|
||||||
return Mok && Hok && monok && (domok || dowok)
|
if (alldom && alldow) {
|
||||||
|
doxok = 1
|
||||||
|
} else if (alldom) {
|
||||||
|
doxok = dowok
|
||||||
|
} else if (alldow) {
|
||||||
|
doxok = domok
|
||||||
|
} else {
|
||||||
|
doxok = domok || dowok
|
||||||
|
}
|
||||||
|
|
||||||
|
return Mok && Hok && monok && doxok
|
||||||
}
|
}
|
||||||
function print_cmd(cmd) {
|
function print_cmd(cmd) {
|
||||||
print "__ctexec " quote_value(cmd)
|
print "__ctexec " quote_value(cmd)
|
||||||
|
@ -16,6 +16,7 @@ JAVA_VMS7=(); JAVA_HOMES7=()
|
|||||||
JAVA_VMS8=(); JAVA_HOMES8=()
|
JAVA_VMS8=(); JAVA_HOMES8=()
|
||||||
JAVA_VMS11=(); JAVA_HOMES11=()
|
JAVA_VMS11=(); JAVA_HOMES11=()
|
||||||
JAVA_VMS17=(); JAVA_HOMES17=()
|
JAVA_VMS17=(); JAVA_HOMES17=()
|
||||||
|
JAVA_VMS21=(); JAVA_HOMES21=()
|
||||||
# versions locales 32 bits
|
# versions locales 32 bits
|
||||||
JAVA32_VMS1_3=(); JAVA32_HOMES1_3=()
|
JAVA32_VMS1_3=(); JAVA32_HOMES1_3=()
|
||||||
JAVA32_VMS1_4=(); JAVA32_HOMES1_4=()
|
JAVA32_VMS1_4=(); JAVA32_HOMES1_4=()
|
||||||
@ -25,6 +26,7 @@ JAVA32_VMS7=(); JAVA32_HOMES7=()
|
|||||||
JAVA32_VMS8=(); JAVA32_HOMES8=()
|
JAVA32_VMS8=(); JAVA32_HOMES8=()
|
||||||
JAVA32_VMS11=(); JAVA32_HOMES11=()
|
JAVA32_VMS11=(); JAVA32_HOMES11=()
|
||||||
JAVA32_VMS17=(); JAVA32_HOMES17=()
|
JAVA32_VMS17=(); JAVA32_HOMES17=()
|
||||||
|
JAVA32_VMS21=(); JAVA32_HOMES21=()
|
||||||
# versions locales 64 bits
|
# versions locales 64 bits
|
||||||
JAVA64_VMS5=(); JAVA64_HOMES5=()
|
JAVA64_VMS5=(); JAVA64_HOMES5=()
|
||||||
JAVA64_VMS6=(); JAVA64_HOMES6=()
|
JAVA64_VMS6=(); JAVA64_HOMES6=()
|
||||||
@ -32,6 +34,7 @@ JAVA64_VMS7=(); JAVA64_HOMES7=()
|
|||||||
JAVA64_VMS8=(); JAVA64_HOMES8=()
|
JAVA64_VMS8=(); JAVA64_HOMES8=()
|
||||||
JAVA64_VMS11=(); JAVA64_HOMES11=()
|
JAVA64_VMS11=(); JAVA64_HOMES11=()
|
||||||
JAVA64_VMS17=(); JAVA64_HOMES17=()
|
JAVA64_VMS17=(); JAVA64_HOMES17=()
|
||||||
|
JAVA64_VMS21=(); JAVA64_HOMES21=()
|
||||||
# version sélectionnée
|
# version sélectionnée
|
||||||
SELECTED_JAVA_VM=; SELECTED_JAVA_HOME=
|
SELECTED_JAVA_VM=; SELECTED_JAVA_HOME=
|
||||||
SELECTED_JAVA=; SELECTED_JAVAC=
|
SELECTED_JAVA=; SELECTED_JAVAC=
|
||||||
@ -112,6 +115,14 @@ function __java_compute_vms() {
|
|||||||
__java_add HOMES8 "$HOME/opt/jvm64/$vm" 64
|
__java_add HOMES8 "$HOME/opt/jvm64/$vm" 64
|
||||||
fi
|
fi
|
||||||
done
|
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)"
|
array_from_lines vms "$(list_dirs "$HOME/opt/jvm64" jdk17)"
|
||||||
for vm in "${vms[@]}"; do
|
for vm in "${vms[@]}"; do
|
||||||
v="${vm#jdk}"
|
v="${vm#jdk}"
|
||||||
@ -120,12 +131,12 @@ function __java_compute_vms() {
|
|||||||
__java_add HOMES17 "$HOME/opt/jvm64/$vm" 64
|
__java_add HOMES17 "$HOME/opt/jvm64/$vm" 64
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
array_from_lines vms "$(list_dirs "$HOME/opt/jvm64" jdk11)"
|
array_from_lines vms "$(list_dirs "$HOME/opt/jvm64" jdk21)"
|
||||||
for vm in "${vms[@]}"; do
|
for vm in "${vms[@]}"; do
|
||||||
v="${vm#jdk}"
|
v="${vm#jdk}"
|
||||||
if [ "$v" == 11 ]; then
|
if [ "$v" == 21 ]; then
|
||||||
__java_add VMS11 "$vm" 64
|
__java_add VMS21 "$vm" 64
|
||||||
__java_add HOMES11 "$HOME/opt/jvm64/$vm" 64
|
__java_add HOMES21 "$HOME/opt/jvm64/$vm" 64
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
array_from_lines vms "$(list_dirs "$HOME/opt/jvm64" "jdk1.5.*" | LANG=C sort -r)"
|
array_from_lines vms "$(list_dirs "$HOME/opt/jvm64" "jdk1.5.*" | LANG=C sort -r)"
|
||||||
@ -158,6 +169,11 @@ function __java_compute_vms() {
|
|||||||
__java_add VMS17 "$vm" 64
|
__java_add VMS17 "$vm" 64
|
||||||
__java_add HOMES17 "$HOME/opt/jvm64/$vm" 64
|
__java_add HOMES17 "$HOME/opt/jvm64/$vm" 64
|
||||||
done
|
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
|
# Puis chercher dans les JVMs installées manuellement dans ~/opt
|
||||||
array_from_lines vms "$(list_dirs "$HOME/opt" "sun-jdk-*")"
|
array_from_lines vms "$(list_dirs "$HOME/opt" "sun-jdk-*")"
|
||||||
for vm in "${vms[@]}"; do
|
for vm in "${vms[@]}"; do
|
||||||
@ -195,6 +211,14 @@ function __java_compute_vms() {
|
|||||||
__java_add HOMES17 "$HOME/opt/$vm"
|
__java_add HOMES17 "$HOME/opt/$vm"
|
||||||
fi
|
fi
|
||||||
done
|
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)"
|
array_from_lines vms "$(list_dirs "$HOME/opt" "j2sdk1.4.2*" | LANG=C sort -r)"
|
||||||
for vm in "${vms[@]}"; do
|
for vm in "${vms[@]}"; do
|
||||||
__java_add VMS1_4 "$vm"
|
__java_add VMS1_4 "$vm"
|
||||||
@ -230,6 +254,11 @@ function __java_compute_vms() {
|
|||||||
__java_add VMS17 "$vm"
|
__java_add VMS17 "$vm"
|
||||||
__java_add HOMES17 "$HOME/opt/$vm"
|
__java_add HOMES17 "$HOME/opt/$vm"
|
||||||
done
|
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
|
# Puis chercher dans les JVMs installées manuellement dans /opt
|
||||||
array_from_lines vms "$(list_dirs "/opt" "sun-jdk-*")"
|
array_from_lines vms "$(list_dirs "/opt" "sun-jdk-*")"
|
||||||
for vm in "${vms[@]}"; do
|
for vm in "${vms[@]}"; do
|
||||||
@ -267,6 +296,14 @@ function __java_compute_vms() {
|
|||||||
__java_add HOMES17 "/opt/$vm"
|
__java_add HOMES17 "/opt/$vm"
|
||||||
fi
|
fi
|
||||||
done
|
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)"
|
array_from_lines vms "$(list_dirs "/opt" "j2sdk1.4.2*" | LANG=C sort -r)"
|
||||||
for vm in "${vms[@]}"; do
|
for vm in "${vms[@]}"; do
|
||||||
__java_add VMS1_4 "$vm"
|
__java_add VMS1_4 "$vm"
|
||||||
@ -302,6 +339,11 @@ function __java_compute_vms() {
|
|||||||
__java_add VMS17 "$vm"
|
__java_add VMS17 "$vm"
|
||||||
__java_add HOMES17 "/opt/$vm"
|
__java_add HOMES17 "/opt/$vm"
|
||||||
done
|
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
|
# Puis chercher dans les JVMs installées par le système dans
|
||||||
# /usr/lib/jvm
|
# /usr/lib/jvm
|
||||||
if check_sysinfos -d gentoo; then
|
if check_sysinfos -d gentoo; then
|
||||||
@ -357,6 +399,9 @@ function __java_compute_vms() {
|
|||||||
elif [ "$v" == 17 ]; then
|
elif [ "$v" == 17 ]; then
|
||||||
__java_add VMS17 "$vm"
|
__java_add VMS17 "$vm"
|
||||||
__java_add HOMES17 "/usr/lib/jvm/$vm"
|
__java_add HOMES17 "/usr/lib/jvm/$vm"
|
||||||
|
elif [ "$v" == 21 ]; then
|
||||||
|
__java_add VMS21 "$vm"
|
||||||
|
__java_add HOMES21 "/usr/lib/jvm/$vm"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
if [ -d /usr/lib/j2sdk1.4-sun ]; then
|
if [ -d /usr/lib/j2sdk1.4-sun ]; then
|
||||||
@ -398,7 +443,7 @@ function __java_compute_vms() {
|
|||||||
|
|
||||||
function __java_dump_vms() {
|
function __java_dump_vms() {
|
||||||
local v b i vms homes
|
local v b i vms homes
|
||||||
for v in 1_3 1_4 5 6 7 8 11 17; do
|
for v in 1_3 1_4 5 6 7 8 11 17 21; do
|
||||||
for b in "" 32 64; do
|
for b in "" 32 64; do
|
||||||
vms="JAVA${b}_VMS${v}[@]"; vms=("${!vms}")
|
vms="JAVA${b}_VMS${v}[@]"; vms=("${!vms}")
|
||||||
homes="JAVA${b}_HOMES${v}[@]"; homes=("${!homes}")
|
homes="JAVA${b}_HOMES${v}[@]"; homes=("${!homes}")
|
||||||
@ -429,7 +474,7 @@ function __java_select_vms() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function __java_select() {
|
function __java_select() {
|
||||||
# Sélectionner la version de java $1 (qui peut être 1_3, 1_4, 5, 6, 7, 8, 11, 17)
|
# Sélectionner la version de java $1 (qui peut être 1_3, 1_4, 5, 6, 7, 8, 11, 17, 21)
|
||||||
# Si $2 est défini, il peut s'agit de 32 ou 64 selon que l'on requière la
|
# 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
|
# version 32bits ou 64 bits. Sinon, la version sélectionnée peut être 32bits
|
||||||
# ou 64bits selon ce qui est disponible.
|
# ou 64bits selon ce qui est disponible.
|
||||||
@ -473,7 +518,7 @@ function __java_select() {
|
|||||||
|
|
||||||
function __java_select_default() {
|
function __java_select_default() {
|
||||||
# Sélectionner la version de java par défaut. Si JAVA_HOME est défini,
|
# 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 puis 1_4
|
# prendre cette valeur. Sinon, essayer dans l'ordre 5, 6, 7, 8, 11, 17, 21 puis 1_4
|
||||||
# la version 1_3 n'est jamais sélectionnée automatiquement
|
# la version 1_3 n'est jamais sélectionnée automatiquement
|
||||||
if [ -n "$JAVA_HOME" ]; then
|
if [ -n "$JAVA_HOME" ]; then
|
||||||
export JAVA_HOME # s'assurer que cette variable est exportée
|
export JAVA_HOME # s'assurer que cette variable est exportée
|
||||||
@ -485,7 +530,7 @@ function __java_select_default() {
|
|||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
local vm
|
local vm
|
||||||
for vm in 5 6 7 8 11 17 1_4; do
|
for vm in 5 6 7 8 11 17 21 1_4; do
|
||||||
__java_select "$vm" && return 0
|
__java_select "$vm" && return 0
|
||||||
done
|
done
|
||||||
return 1
|
return 1
|
||||||
@ -493,7 +538,7 @@ function __java_select_default() {
|
|||||||
|
|
||||||
function select_java() {
|
function select_java() {
|
||||||
# sélectionner la version *minimum* de java correspondant à $1
|
# 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+
|
# $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+
|
||||||
# Si $2 est défini, il peut s'agit de 32 ou 64 selon que l'on requière la
|
# 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
|
# version 32bits ou 64 bits
|
||||||
local v vms homes
|
local v vms homes
|
||||||
@ -530,12 +575,17 @@ function select_java() {
|
|||||||
done
|
done
|
||||||
;;
|
;;
|
||||||
11|11+)
|
11|11+)
|
||||||
for v in 11 17; do
|
for v in 11 17 21; do
|
||||||
__java_select "$v" "$2" && return 0
|
__java_select "$v" "$2" && return 0
|
||||||
done
|
done
|
||||||
;;
|
;;
|
||||||
17|17+)
|
17|17+)
|
||||||
for v in 17; do
|
for v in 17 21; do
|
||||||
|
__java_select "$v" "$2" && return 0
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
21|21+)
|
||||||
|
for v in 21; do
|
||||||
__java_select "$v" "$2" && return 0
|
__java_select "$v" "$2" && return 0
|
||||||
done
|
done
|
||||||
;;
|
;;
|
||||||
@ -545,8 +595,8 @@ function select_java() {
|
|||||||
|
|
||||||
function select_java_exact() {
|
function select_java_exact() {
|
||||||
# sélectionner la version *exacte* de java correspondant à $1
|
# sélectionner la version *exacte* de java correspondant à $1
|
||||||
# $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|21 pour une correspondance exacte
|
||||||
# $1 == 1.3+|1.4+|1.5+|1.6+|1.7+|1.8+|11+|17+ pour une version minimum
|
# $1 == 1.3+|1.4+|1.5+|1.6+|1.7+|1.8+|11+|17+|21+ pour une version minimum
|
||||||
# Si $2 est défini, il peut s'agit de 32 ou 64 selon que l'on requière la
|
# 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
|
# version 32bits ou 64 bits
|
||||||
local v vms homes
|
local v vms homes
|
||||||
@ -604,7 +654,7 @@ function select_java_exact() {
|
|||||||
__java_select 11 "$2" && return 0
|
__java_select 11 "$2" && return 0
|
||||||
;;
|
;;
|
||||||
11+)
|
11+)
|
||||||
for v in 11 17; do
|
for v in 11 17 21; do
|
||||||
__java_select "$v" "$2" && return 0
|
__java_select "$v" "$2" && return 0
|
||||||
done
|
done
|
||||||
;;
|
;;
|
||||||
@ -612,7 +662,15 @@ function select_java_exact() {
|
|||||||
__java_select 17 "$2" && return 0
|
__java_select 17 "$2" && return 0
|
||||||
;;
|
;;
|
||||||
17+)
|
17+)
|
||||||
for v in 17; do
|
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
|
||||||
__java_select "$v" "$2" && return 0
|
__java_select "$v" "$2" && return 0
|
||||||
done
|
done
|
||||||
;;
|
;;
|
||||||
@ -624,9 +682,9 @@ function select_java_any() {
|
|||||||
# Sélectionner la version exacte de java correspondant aux arguments, dans
|
# Sélectionner la version exacte de java correspondant aux arguments, dans
|
||||||
# l'ordre, jusqu'à ce qu'un argument corresponde. DEFAULT correspond à la
|
# l'ordre, jusqu'à ce qu'un argument corresponde. DEFAULT correspond à la
|
||||||
# valeur actuelle de JAVA_HOME, si elle est définie.
|
# 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 1.4"
|
# Si aucun argument n'est défini, on assume "DEFAULT 5 6 7 8 11 17 21 1.4"
|
||||||
local v
|
local v
|
||||||
[ -n "$*" ] || set -- DEFAULT 5 6 7 8 11 17 1.4
|
[ -n "$*" ] || set -- DEFAULT 5 6 7 8 11 17 21 1.4
|
||||||
for v in "$@"; do
|
for v in "$@"; do
|
||||||
if [ "$v" == DEFAULT ]; then
|
if [ "$v" == DEFAULT ]; then
|
||||||
if [ -n "$JAVA_HOME" ]; then
|
if [ -n "$JAVA_HOME" ]; then
|
||||||
|
@ -213,7 +213,7 @@ function tl_modifyattr() {
|
|||||||
dn = ""
|
dn = ""
|
||||||
}
|
}
|
||||||
sub(/:+$/, "", attr)
|
sub(/:+$/, "", attr)
|
||||||
if (lastattr != attr) {
|
if (tolower(lastattr) != tolower(attr)) {
|
||||||
if (lastattr != "") {
|
if (lastattr != "") {
|
||||||
print "-"
|
print "-"
|
||||||
}
|
}
|
||||||
@ -248,7 +248,7 @@ function tl_deleteattr() {
|
|||||||
dn = ""
|
dn = ""
|
||||||
}
|
}
|
||||||
sub(/:+$/, "", attr)
|
sub(/:+$/, "", attr)
|
||||||
if (lastattr != attr) {
|
if (tolower(lastattr) != tolower(attr)) {
|
||||||
if (lastattr != "") {
|
if (lastattr != "") {
|
||||||
print "-"
|
print "-"
|
||||||
}
|
}
|
||||||
|
4
lless
4
lless
@ -3,10 +3,10 @@
|
|||||||
source "$(dirname "$0")/lib/ulib/auto" || exit 1
|
source "$(dirname "$0")/lib/ulib/auto" || exit 1
|
||||||
|
|
||||||
function display_help() {
|
function display_help() {
|
||||||
uecho "$scriptname: frontend de less pour lire des fichiers encodés en latin1
|
uecho "$scriptname: frontend de less pour lire un fichier encodé en latin1
|
||||||
|
|
||||||
USAGE
|
USAGE
|
||||||
$scriptname [options] files...
|
$scriptname [options] FILE
|
||||||
|
|
||||||
OPTIONS
|
OPTIONS
|
||||||
-S, --chop-long-lines
|
-S, --chop-long-lines
|
||||||
|
139
reginc
139
reginc
@ -12,62 +12,111 @@ remplacer les nombres de FROMmin à FROMmax par leur valeur correspondante,
|
|||||||
sachant que FROMmin doit être remplacé par TO. On peut mentionner autant de
|
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
|
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
|
OPTIONS
|
||||||
-n, --fake
|
-n, --fake
|
||||||
Afficher le fichier tel qu'il serait modifié au lieu de le modifier en
|
Afficher le fichier tel qu'il serait modifié au lieu de le modifier en
|
||||||
place"
|
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"
|
||||||
}
|
}
|
||||||
|
|
||||||
fake=
|
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=
|
||||||
args=(
|
args=(
|
||||||
--help '$exit_with display_help'
|
--help '$exit_with display_help'
|
||||||
-n,--fake fake=1
|
-n,--Fake Fake=1
|
||||||
|
-r,--rename rename=1
|
||||||
)
|
)
|
||||||
parse_args "$@"; set -- "${args[@]}"
|
parse_args "$@"; set -- "${args[@]}"
|
||||||
|
|
||||||
file="$1"; shift
|
if [ -n "$rename" ]; then
|
||||||
[ -n "$file" ] || die "vous devez spécifier le fichier à modifier"
|
from="$1"; to="$2"; shift 2
|
||||||
|
|
||||||
seds=
|
froms=("$@")
|
||||||
while [ $# -ge 2 ]; do
|
ac_set_tmpfile tmptos
|
||||||
from="$1"
|
echo "tos=(" >>"$tmptos"
|
||||||
if [[ "$from" == *-* ]]; then
|
for file in "${froms[@]}"; do
|
||||||
let fromb="${from%-*}"
|
qval "$file" >>"$tmptos"
|
||||||
let frome="${from#*-}"
|
done
|
||||||
else
|
echo ")" >>"$tmptos"
|
||||||
let fromb="$from"
|
|
||||||
let frome="$from"
|
|
||||||
fi
|
|
||||||
let to="$2"; shift 2
|
|
||||||
|
|
||||||
if [ "$to" -eq "$fromb" ]; then
|
Fake= process_file "$tmptos" "$from" "$to"
|
||||||
einfo "$fromb --> $to aucune modification n'est nécessaire"
|
eval "$(<"$tmptos")"
|
||||||
|
|
||||||
elif [ "$to" -lt "$fromb" ]; then
|
i=0
|
||||||
einfo "$fromb-$frome --> $to-$((to+frome-fromb))"
|
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
|
||||||
|
|
||||||
let from=fromb
|
else
|
||||||
while [ "$from" -le "$frome" ]; do
|
process_file "$@"
|
||||||
seds="$seds${seds:+; }s/$from/$to/g"
|
fi
|
||||||
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…
Reference in New Issue
Block a user