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
|
||||
if progexists docker; then DOCKER=docker
|
||||
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
|
||||
DEFAULT_COMPOSER_IMAGE=none #docker.univ-reunion.fr/image/apache-php-myiccas-utils:d9
|
||||
PROFILE=
|
||||
DM_ALIASES=()
|
||||
DM_PROFILES=()
|
||||
CLUSTERDIRS=()
|
||||
set_defaults dk
|
||||
export PROFILE
|
||||
|
||||
|
@ -1907,6 +1973,7 @@ parse_args "$@"; set -- "${args[@]}"
|
|||
progexists docker-machine && DM_AVAILABLE=1 || DM_AVAILABLE=
|
||||
if [ -n "$DM_SET_MACHINE" ]; then
|
||||
[ -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
|
||||
setx dm_env=docker-machine env "$DM_SET_MACHINE" || die
|
||||
eval "$dm_env"
|
||||
|
@ -1975,15 +2042,7 @@ if [ -n "$SELECT_MACHINE" ]; then
|
|||
fi
|
||||
|
||||
if [ -n "$DM_AVAILABLE" ]; then
|
||||
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
|
||||
setx DEFAULT_PROFILE=resolve_dm_profile "$DOCKER_MACHINE_NAME" && found=1 || found=
|
||||
if [ -n "$DM_SET_MACHINE" -a -z "$PROFILE" -a -z "$found" ]; then
|
||||
ewarn "\
|
||||
Aucun profil n'a été défini pour $DM_SET_MACHINE dans ~/etc/default/dk
|
||||
|
|
|
@ -3,8 +3,16 @@
|
|||
# Profil par défaut
|
||||
#PROFILE=prod
|
||||
|
||||
# Aliases pour docker-machine
|
||||
#DM_ALIASES=(alias:name)
|
||||
|
||||
# Profiles pour docker-machine
|
||||
#DM_PROFILES=(name:profile...)
|
||||
|
||||
# Répertoires de gestion de cluster. Dans chacun de ces répertoires, le fichier
|
||||
# 0config/configure.conf est sourcé à la recherche de définitions de profils et
|
||||
# d'aliases
|
||||
#CLUSTERDIRS=(~/wop/containers/*.univ.run)
|
||||
|
||||
# Image à utiliser pour lancer composer
|
||||
#COMPOSER_IMAGE=docker.univ-reunion.fr/image/apache-php-myiccas-utils:d10
|
||||
|
|
Loading…
Reference in New Issue