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 script s'arrête avec une erreur. Le premier profil listé est spécial: c'est le
profil par défaut. 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é 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 sélectionné par l'utilisateur. L'argument 'DEFAULT' permet de tester le profil
par défaut. 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 Si les distributions sont utilisées avec des versions, alors c'est une erreur de
spécifier une version dans le profil spécifier une version dans le profil
Note: 'setprofiles' ne doit être utilisé qu'une seule fois. Les invocations Note: 'setprofiles' et 'default_profile' ne peuvent être utilisés qu'une seule
suivantes sont ignorées. fois. Les invocations suivantes sont ignorées.
## Versions #################################################################### ## Versions ####################################################################
@ -510,6 +515,8 @@ USAGE:
## setprofiles -- spécifier les profils valides ## 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 ## profile -- vérifier le profil courant
## setversion -- spécifier la version par défaut ## setversion -- spécifier la version par défaut
@ -892,6 +899,7 @@ declare -A PROTECTED_VARS=(
[SETDISTS]=1 [SETDISTS]=1
[SETPROFILES_DONE]=1 [SETPROFILES_DONE]=1
[SETPROFILES]=1 [SETPROFILES]=1
[DEFAULT_PROFILE]=1
[SETVERSION_DONE]=1 [SETVERSION_DONE]=1
[SETVERSION]=1 [SETVERSION]=1
[AUTOBUILD]=1 [AUTOBUILD]=1
@ -937,6 +945,7 @@ TFUNCTIONS=(
section note info debug section note info debug
setdists dist setdists dist
setprofiles profile setprofiles profile
default_profile
setversion version setversion version
setenv resetenv setenv resetenv
setarg resetarg setarg resetarg
@ -1432,6 +1441,7 @@ function resolve_dists_profiles() {
SETDISTS=() SETDISTS=()
SETPROFILES_DONE= SETPROFILES_DONE=
SETPROFILES=() SETPROFILES=()
DEFAULT_PROFILE=
SETVERSION_DONE= SETVERSION_DONE=
SETVERSION= SETVERSION=
AUTOBUILD=1 AUTOBUILD=1
@ -1446,6 +1456,9 @@ function resolve_dists_profiles() {
SETPROFILES=("$@") SETPROFILES=("$@")
SETPROFILES_DONE=1 SETPROFILES_DONE=1
} }
function default_profile() {
[ -n "$DEFAULT_PROFILE" ] || DEFAULT_PROFILE="$1"
}
function build() { function build() {
AUTOBUILD= AUTOBUILD=
} }
@ -1454,6 +1467,10 @@ function resolve_dists_profiles() {
} }
load_dkbuild 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= local MANUAL_SETPROFILES=
if [ -z "$SETPROFILES_DONE" -a -n "$PROFILE" ]; then if [ -z "$SETPROFILES_DONE" -a -n "$PROFILE" ]; then
# Si l'utilisateur spécifie un profil mais qu'aucun profil n'a été # 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 # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
_valid_profiles=( default_profile "${DKBUILD_PROFILE:-devel}"
prod test devel
jclain
)
_default_profile=devel
[ -z "$DKBUILD_NO_SETPROFILES" ] && setprofiles "$_default_profile" "${_valid_profiles[@]}"
if profile jclain; then if profile jclain; then
setenv REGISTRY=docker.jclain.fr setenv REGISTRY=docker.jclain.fr