améliorer la prise en charge de dkbuild imbriqué
This commit is contained in:
parent
7611760c3c
commit
e674b316c3
55
dkbuild
55
dkbuild
|
@ -719,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
|
||||
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
|
||||
|
||||
USAGE: composer DESTDIR [ACTION [PARAMS] [ARGS]]
|
||||
|
@ -935,6 +947,10 @@ declare -A PROTECTED_VARS=(
|
|||
[ENVIRON]=1
|
||||
[ARGS]=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"
|
||||
|
@ -969,6 +985,11 @@ SHARED_ARGS2=(
|
|||
--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=(
|
||||
# dkbuild
|
||||
section note info debug
|
||||
|
@ -1158,32 +1179,38 @@ function ensure_projdir() {
|
|||
setx CONFIG=abspath "$CONFIG"
|
||||
edebug "using config $CONFIG"
|
||||
else
|
||||
local config
|
||||
local config found
|
||||
for config in ~/.dkbuild.env /etc/dkbuild.env; do
|
||||
if [ -f "$config" ]; then
|
||||
found=1
|
||||
CONFIG="$config"
|
||||
edebug "using default config $CONFIG"
|
||||
break
|
||||
fi
|
||||
done
|
||||
[ -n "$found" ] || CONFIG=none
|
||||
fi
|
||||
}
|
||||
|
||||
function load_dkbuild() {
|
||||
local CONFIG="$CONFIG"
|
||||
local dkbuildenv="$PROJDIR/$(basename "$DKBUILD").env"
|
||||
cd "$PROJDIR"
|
||||
|
||||
set_defaults dkbuild
|
||||
|
||||
if [ -n "$CONFIG" -a "$CONFIG" != none ]; then
|
||||
edebug "loading $CONFIG"
|
||||
source "$CONFIG"
|
||||
if [ -n "$CONFIG" ]; then
|
||||
if [ "$CONFIG" != none ]; then
|
||||
edebug "loading $CONFIG"
|
||||
source "$CONFIG"
|
||||
fi
|
||||
[ -n "$fill_DKBUILD_CONFIGS" ] && DKBUILD_CONFIGS+=("$CONFIG")
|
||||
fi
|
||||
if [ -f "$dkbuildenv" ]; then
|
||||
edebug "loading $dkbuildenv"
|
||||
source "$dkbuildenv"
|
||||
[ -n "$fill_DKBUILD_CONFIGS" ] && DKBUILD_CONFIGS+=("$dkbuildenv")
|
||||
fi
|
||||
|
||||
edebug "loading $DKBUILD"
|
||||
source "$DKBUILD"
|
||||
}
|
||||
|
@ -1368,7 +1395,13 @@ function define_functions_env() {
|
|||
# Ne spécifier la valeur que si elle n'a pas déjà été définie
|
||||
_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
|
||||
done
|
||||
}
|
||||
|
@ -1401,6 +1434,10 @@ function define_functions_env() {
|
|||
if [ "${ARGS[$name]-__UNDEFINED__}" == __UNDEFINED__ ]; then
|
||||
# Ne spécifier la valeur que si elle n'a pas déjà été définie
|
||||
ARGS["$name"]="$value"
|
||||
if [ -n "$fill_DKBUILD_ARGS" ]; then
|
||||
DKBUILD_ARGS["$name"]="$name=$value"
|
||||
DKBUILD_CMD_ARGS+=(--arg "$name=$value")
|
||||
fi
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
@ -1610,10 +1647,10 @@ function resolve_dists_profiles() {
|
|||
reset_functions
|
||||
define_functions_env
|
||||
|
||||
setenv "${TMPENVIRON[@]}"
|
||||
setarg "${TMPARGS[@]}"
|
||||
fill_DKBUILD_ENVS=1 setenv "${TMPENVIRON[@]}"
|
||||
fill_DKBUILD_ARGS=1 setarg "${TMPARGS[@]}"
|
||||
setarg "$@"
|
||||
load_dkbuild
|
||||
fill_DKBUILD_CONFIGS=1 load_dkbuild
|
||||
}
|
||||
|
||||
function foreach_dists_profiles() {
|
||||
|
|
|
@ -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=
|
Loading…
Reference in New Issue