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
|
commande est qu'on est assuré d'utiliser le même dkbuild que celui qui traite le
|
||||||
script de build courant.
|
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
|
## composer -- gérer projet composer
|
||||||
|
|
||||||
USAGE: composer DESTDIR [ACTION [PARAMS] [ARGS]]
|
USAGE: composer DESTDIR [ACTION [PARAMS] [ARGS]]
|
||||||
|
@ -935,6 +947,10 @@ declare -A PROTECTED_VARS=(
|
||||||
[ENVIRON]=1
|
[ENVIRON]=1
|
||||||
[ARGS]=1
|
[ARGS]=1
|
||||||
[DEFAULTS]=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"
|
SHARED_LOCALS1="local PROJDIR DKBUILD CONFIG"
|
||||||
|
@ -969,6 +985,11 @@ SHARED_ARGS2=(
|
||||||
--arg: '$TMPARGS+=("$value_")'
|
--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=(
|
TFUNCTIONS=(
|
||||||
# dkbuild
|
# dkbuild
|
||||||
section note info debug
|
section note info debug
|
||||||
|
@ -1158,32 +1179,38 @@ function ensure_projdir() {
|
||||||
setx CONFIG=abspath "$CONFIG"
|
setx CONFIG=abspath "$CONFIG"
|
||||||
edebug "using config $CONFIG"
|
edebug "using config $CONFIG"
|
||||||
else
|
else
|
||||||
local config
|
local config found
|
||||||
for config in ~/.dkbuild.env /etc/dkbuild.env; do
|
for config in ~/.dkbuild.env /etc/dkbuild.env; do
|
||||||
if [ -f "$config" ]; then
|
if [ -f "$config" ]; then
|
||||||
|
found=1
|
||||||
CONFIG="$config"
|
CONFIG="$config"
|
||||||
edebug "using default config $CONFIG"
|
edebug "using default config $CONFIG"
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
[ -n "$found" ] || CONFIG=none
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function load_dkbuild() {
|
function load_dkbuild() {
|
||||||
local CONFIG="$CONFIG"
|
|
||||||
local dkbuildenv="$PROJDIR/$(basename "$DKBUILD").env"
|
local dkbuildenv="$PROJDIR/$(basename "$DKBUILD").env"
|
||||||
cd "$PROJDIR"
|
cd "$PROJDIR"
|
||||||
|
|
||||||
set_defaults dkbuild
|
set_defaults dkbuild
|
||||||
|
|
||||||
if [ -n "$CONFIG" -a "$CONFIG" != none ]; then
|
if [ -n "$CONFIG" ]; then
|
||||||
edebug "loading $CONFIG"
|
if [ "$CONFIG" != none ]; then
|
||||||
source "$CONFIG"
|
edebug "loading $CONFIG"
|
||||||
|
source "$CONFIG"
|
||||||
|
fi
|
||||||
|
[ -n "$fill_DKBUILD_CONFIGS" ] && DKBUILD_CONFIGS+=("$CONFIG")
|
||||||
fi
|
fi
|
||||||
if [ -f "$dkbuildenv" ]; then
|
if [ -f "$dkbuildenv" ]; then
|
||||||
edebug "loading $dkbuildenv"
|
edebug "loading $dkbuildenv"
|
||||||
source "$dkbuildenv"
|
source "$dkbuildenv"
|
||||||
|
[ -n "$fill_DKBUILD_CONFIGS" ] && DKBUILD_CONFIGS+=("$dkbuildenv")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
edebug "loading $DKBUILD"
|
edebug "loading $DKBUILD"
|
||||||
source "$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
|
# Ne spécifier la valeur que si elle n'a pas déjà été définie
|
||||||
_ENVIRON["$name"]="$value"
|
_ENVIRON["$name"]="$value"
|
||||||
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
|
fi
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
@ -1401,6 +1434,10 @@ function define_functions_env() {
|
||||||
if [ "${ARGS[$name]-__UNDEFINED__}" == __UNDEFINED__ ]; then
|
if [ "${ARGS[$name]-__UNDEFINED__}" == __UNDEFINED__ ]; then
|
||||||
# Ne spécifier la valeur que si elle n'a pas déjà été définie
|
# Ne spécifier la valeur que si elle n'a pas déjà été définie
|
||||||
ARGS["$name"]="$value"
|
ARGS["$name"]="$value"
|
||||||
|
if [ -n "$fill_DKBUILD_ARGS" ]; then
|
||||||
|
DKBUILD_ARGS["$name"]="$name=$value"
|
||||||
|
DKBUILD_CMD_ARGS+=(--arg "$name=$value")
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
@ -1610,10 +1647,10 @@ function resolve_dists_profiles() {
|
||||||
reset_functions
|
reset_functions
|
||||||
define_functions_env
|
define_functions_env
|
||||||
|
|
||||||
setenv "${TMPENVIRON[@]}"
|
fill_DKBUILD_ENVS=1 setenv "${TMPENVIRON[@]}"
|
||||||
setarg "${TMPARGS[@]}"
|
fill_DKBUILD_ARGS=1 setarg "${TMPARGS[@]}"
|
||||||
setarg "$@"
|
setarg "$@"
|
||||||
load_dkbuild
|
fill_DKBUILD_CONFIGS=1 load_dkbuild
|
||||||
}
|
}
|
||||||
|
|
||||||
function foreach_dists_profiles() {
|
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