support de la définition des aliases et des profils dans les répertoires de cluster
This commit is contained in:
parent
14beb13b7c
commit
c5e15368a1
77
dk
77
dk
|
@ -1849,6 +1849,70 @@ exit((PHP_VERSION_ID < $version)? 0: 1);
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
function resolve_dm_alias() {
|
||||||
|
local alias dm
|
||||||
|
# chercher d'abord dans les définitions par défaut
|
||||||
|
for alias_dm in "${DM_ALIASES[@]}"; do
|
||||||
|
alias="${alias_dm%%:*}"
|
||||||
|
dm="${alias_dm#*:}"
|
||||||
|
if [ "$1" == "$alias" ]; then
|
||||||
|
echo "$dm"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
# puis chercher dans les répertoires de cluster
|
||||||
|
local clusterdir DM_ALIASES
|
||||||
|
for clusterdir in "${CLUSTERDIRS[@]}"; do
|
||||||
|
DM_ALIASES=()
|
||||||
|
[ -f "$clusterdir/0config/configure.conf" ] || continue
|
||||||
|
source "$clusterdir/0config/configure.conf"
|
||||||
|
for alias_dm in "${DM_ALIASES[@]}"; do
|
||||||
|
alias="${alias_dm%%:*}"
|
||||||
|
dm="${alias_dm#*:}"
|
||||||
|
if [ "$1" == "$alias" ]; then
|
||||||
|
echo "$dm"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
# sinon, laisser en l'état
|
||||||
|
echo "$1"
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
function resolve_dm_profile() {
|
||||||
|
local dm profile
|
||||||
|
# chercher d'abord dans les définitions par défaut
|
||||||
|
for dm_profile in "${DM_PROFILES[@]}"; do
|
||||||
|
dm="${dm_profile%%*:}"
|
||||||
|
profile="${dm_profile#:*}"
|
||||||
|
if [ "$1" == "$dm" ]; then
|
||||||
|
echo "$profile"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
# puis chercher dans les répertoires de cluster
|
||||||
|
local clusterdir DM_PROFILES
|
||||||
|
for clusterdir in "${CLUSTERDIRS[@]}"; do
|
||||||
|
DM_PROFILES=()
|
||||||
|
[ -f "$clusterdir/0config/configure.conf" ] || continue
|
||||||
|
source "$clusterdir/0config/configure.conf"
|
||||||
|
for dm_profile in "${DM_PROFILES[@]}"; do
|
||||||
|
dm="${dm_profile%%*:}"
|
||||||
|
profile="${dm_profile#:*}"
|
||||||
|
if [ "$1" == "$dm" ]; then
|
||||||
|
echo "$profile"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
# sinon, afficher le profil par défaut
|
||||||
|
echo "$DEFAULT_PROFILE"
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
################################################################################
|
||||||
|
|
||||||
# support limité docker / podman
|
# support limité docker / podman
|
||||||
if progexists docker; then DOCKER=docker
|
if progexists docker; then DOCKER=docker
|
||||||
elif progexists podman; then DOCKER=podman
|
elif progexists podman; then DOCKER=podman
|
||||||
|
@ -1859,7 +1923,9 @@ DEFAULT_PROFILE=devel
|
||||||
# pour le moment ne pas lancer composer dans un container par défaut
|
# pour le moment ne pas lancer composer dans un container par défaut
|
||||||
DEFAULT_COMPOSER_IMAGE=none #docker.univ-reunion.fr/image/apache-php-myiccas-utils:d9
|
DEFAULT_COMPOSER_IMAGE=none #docker.univ-reunion.fr/image/apache-php-myiccas-utils:d9
|
||||||
PROFILE=
|
PROFILE=
|
||||||
|
DM_ALIASES=()
|
||||||
DM_PROFILES=()
|
DM_PROFILES=()
|
||||||
|
CLUSTERDIRS=()
|
||||||
set_defaults dk
|
set_defaults dk
|
||||||
export PROFILE
|
export PROFILE
|
||||||
|
|
||||||
|
@ -1907,6 +1973,7 @@ parse_args "$@"; set -- "${args[@]}"
|
||||||
progexists docker-machine && DM_AVAILABLE=1 || DM_AVAILABLE=
|
progexists docker-machine && DM_AVAILABLE=1 || DM_AVAILABLE=
|
||||||
if [ -n "$DM_SET_MACHINE" ]; then
|
if [ -n "$DM_SET_MACHINE" ]; then
|
||||||
[ -n "$DM_AVAILABLE" ] || die "docker-machine n'est pas disponible"
|
[ -n "$DM_AVAILABLE" ] || die "docker-machine n'est pas disponible"
|
||||||
|
setx DM_SET_MACHINE=resolve_dm_alias "$DM_SET_MACHINE"
|
||||||
[ "$DM_SET_MACHINE" == - ] && DM_SET_MACHINE=-u
|
[ "$DM_SET_MACHINE" == - ] && DM_SET_MACHINE=-u
|
||||||
setx dm_env=docker-machine env "$DM_SET_MACHINE" || die
|
setx dm_env=docker-machine env "$DM_SET_MACHINE" || die
|
||||||
eval "$dm_env"
|
eval "$dm_env"
|
||||||
|
@ -1975,15 +2042,7 @@ if [ -n "$SELECT_MACHINE" ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$DM_AVAILABLE" ]; then
|
if [ -n "$DM_AVAILABLE" ]; then
|
||||||
found=
|
setx DEFAULT_PROFILE=resolve_dm_profile "$DOCKER_MACHINE_NAME" && found=1 || found=
|
||||||
for dm_profile in "${DM_PROFILES[@]}"; do
|
|
||||||
splitpair "$dm_profile" dm profile
|
|
||||||
if [ "$dm" == "$DOCKER_MACHINE_NAME" ]; then
|
|
||||||
DEFAULT_PROFILE="$profile"
|
|
||||||
found=1
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
if [ -n "$DM_SET_MACHINE" -a -z "$PROFILE" -a -z "$found" ]; then
|
if [ -n "$DM_SET_MACHINE" -a -z "$PROFILE" -a -z "$found" ]; then
|
||||||
ewarn "\
|
ewarn "\
|
||||||
Aucun profil n'a été défini pour $DM_SET_MACHINE dans ~/etc/default/dk
|
Aucun profil n'a été défini pour $DM_SET_MACHINE dans ~/etc/default/dk
|
||||||
|
|
|
@ -3,8 +3,16 @@
|
||||||
# Profil par défaut
|
# Profil par défaut
|
||||||
#PROFILE=prod
|
#PROFILE=prod
|
||||||
|
|
||||||
|
# Aliases pour docker-machine
|
||||||
|
#DM_ALIASES=(alias:name)
|
||||||
|
|
||||||
# Profiles pour docker-machine
|
# Profiles pour docker-machine
|
||||||
#DM_PROFILES=(name:profile...)
|
#DM_PROFILES=(name:profile...)
|
||||||
|
|
||||||
|
# Répertoires de gestion de cluster. Dans chacun de ces répertoires, le fichier
|
||||||
|
# 0config/configure.conf est sourcé à la recherche de définitions de profils et
|
||||||
|
# d'aliases
|
||||||
|
#CLUSTERDIRS=(~/wop/containers/*.univ.run)
|
||||||
|
|
||||||
# Image à utiliser pour lancer composer
|
# Image à utiliser pour lancer composer
|
||||||
#COMPOSER_IMAGE=docker.univ-reunion.fr/image/apache-php-myiccas-utils:d10
|
#COMPOSER_IMAGE=docker.univ-reunion.fr/image/apache-php-myiccas-utils:d10
|
||||||
|
|
Loading…
Reference in New Issue