dkbuild: support profil par défaut

This commit is contained in:
Jephté Clain 2023-11-18 08:39:28 +04:00
parent a855b04c21
commit 5a06851b0f
2 changed files with 20 additions and 8 deletions

21
dkbuild
View File

@ -260,6 +260,11 @@ Si le profil sélectionné par l'utilisateur n'est pas dans la liste fournie, le
script s'arrête avec une erreur. Le premier profil listé est spécial: c'est le
profil par défaut.
La commande 'default_profile' permet de spécifier un profil par défaut à
utiliser, exactement comme s'il avait été spécifié avec l'option --profile.
Cette commande est particulièrement appropriée pour le fichier ~/.dkbuild.env
s'il s'agit de définir le profil à utiliser sur un hôte.
La commande 'profile' permet de tester si le profil spécifié en argument a été
sélectionné par l'utilisateur. L'argument 'DEFAULT' permet de tester le profil
par défaut.
@ -289,8 +294,8 @@ la plus récente.
Si les distributions sont utilisées avec des versions, alors c'est une erreur de
spécifier une version dans le profil
Note: 'setprofiles' ne doit être utilisé qu'une seule fois. Les invocations
suivantes sont ignorées.
Note: 'setprofiles' et 'default_profile' ne peuvent être utilisés qu'une seule
fois. Les invocations suivantes sont ignorées.
## Versions ####################################################################
@ -510,6 +515,8 @@ USAGE:
## setprofiles -- spécifier les profils valides
## default_profile -- spécifier le profil à utiliser si aucun profil n'est sélectionné
## profile -- vérifier le profil courant
## setversion -- spécifier la version par défaut
@ -892,6 +899,7 @@ declare -A PROTECTED_VARS=(
[SETDISTS]=1
[SETPROFILES_DONE]=1
[SETPROFILES]=1
[DEFAULT_PROFILE]=1
[SETVERSION_DONE]=1
[SETVERSION]=1
[AUTOBUILD]=1
@ -937,6 +945,7 @@ TFUNCTIONS=(
section note info debug
setdists dist
setprofiles profile
default_profile
setversion version
setenv resetenv
setarg resetarg
@ -1432,6 +1441,7 @@ function resolve_dists_profiles() {
SETDISTS=()
SETPROFILES_DONE=
SETPROFILES=()
DEFAULT_PROFILE=
SETVERSION_DONE=
SETVERSION=
AUTOBUILD=1
@ -1446,6 +1456,9 @@ function resolve_dists_profiles() {
SETPROFILES=("$@")
SETPROFILES_DONE=1
}
function default_profile() {
[ -n "$DEFAULT_PROFILE" ] || DEFAULT_PROFILE="$1"
}
function build() {
AUTOBUILD=
}
@ -1454,6 +1467,10 @@ function resolve_dists_profiles() {
}
load_dkbuild
if [ -z "$PROFILE" -a -z "$ALL_PROFILES" -a -n "$DEFAULT_PROFILE" ]; then
enote "Auto-sélection du profil $DEFAULT_PROFILE"
PROFILE="$DEFAULT_PROFILE"
fi
local MANUAL_SETPROFILES=
if [ -z "$SETPROFILES_DONE" -a -n "$PROFILE" ]; then
# Si l'utilisateur spécifie un profil mais qu'aucun profil n'a été

View File

@ -1,10 +1,5 @@
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
_valid_profiles=(
prod test devel
jclain
)
_default_profile=devel
[ -z "$DKBUILD_NO_SETPROFILES" ] && setprofiles "$_default_profile" "${_valid_profiles[@]}"
default_profile "${DKBUILD_PROFILE:-devel}"
if profile jclain; then
setenv REGISTRY=docker.jclain.fr