diff options
Diffstat (limited to 'tests/setenv')
-rwxr-xr-x | tests/setenv | 51 |
1 files changed, 33 insertions, 18 deletions
diff --git a/tests/setenv b/tests/setenv index e0a8e1757..450860390 100755 --- a/tests/setenv +++ b/tests/setenv @@ -5,28 +5,43 @@ if [ ! -e "${PTXDIST_BOARDSETUP}" ]; then exit 1 fi -CONFFILE="${PTXDIST_PLATFORMCONFIGDIR}/u-boot-env/config${PTXDIST_PLATFORMSUFFIX}" -if [ ! -r "${CONFFILE}.in" ]; then - if [ -r "`dirname "${CONFFILE}"`/config.in" ]; then - CONFFILE="`dirname "${CONFFILE}"`/config" - else - echo "Config file for uboot environment is missing!" >&2 - exit 1 - fi -fi - -#source and export variables, so we can access them later with awk. set -a . "${PTXDIST_BOARDSETUP}" set +a -#Replace @magics@ with PTXCONF-variables -#FIXME: Warn if variable is empty? -awk 'match($0, "@[A-Z0-9_]+@") { var=substr($0,RSTART+1,RLENGTH-2); gsub("@"var"@", ENVIRON[var]); } {print} ' "${CONFFILE}".in >"${CONFFILE}" +UBOOT_ENVDIR="${PTXDIST_PLATFORMCONFIGDIR}/u-boot-env" +BAREBOX_ENVDIR="${PTXDIST_PLATFORMCONFIGDIR}/barebox-env" + +if [ -d ${UBOOT_ENVDIR} -a -r ${UBOOT_ENVDIR} ]; then + CONFFILE="${UBOOT_ENVDIR}/config${PTXDIST_PLATFORMSUFFIX}" + if [ ! -r "${CONFFILE}.in" ]; then + if [ -r "`dirname "${CONFFILE}"`/config.in" ]; then + CONFFILE="`dirname "${CONFFILE}"`/config" + else + echo "Direcotry for U-Boot environment found, but config file is missing!" >&2 + exit 1 + fi + fi + awk 'match($0, "@[A-Z0-9_]+@") { var=substr($0,RSTART+1,RLENGTH-2); gsub("@"var"@", ENVIRON[var]); } {print} ' "${CONFFILE}".in >"${CONFFILE}" +fi + +if [ -d "${BAREBOX_ENVDIR}" -a -r "${BAREBOX_ENVDIR}" -a -z "${CONFFILE}" ]; then + # Neith u-boot-v2 nor barebox acutally need CONFFILE while calling + # kermit setenv function. However U-Boot V1 need this. So we have to + # pass this information to the kwrapper. + # barebox parses its conffile in make_barebox_env separately. give a + # dummy here to make sure that setenv can parse the parameters correctly + CONFFILE="NULL"; +fi + +if [ -z "${CONFFILE}" ]; then + echo "No environment directory found!" >&2 + exit 1 +fi -PTXDIST_SETENV_U_BOOT_V2_ENV="$(mktemp "${PTXCONF_BOARDSETUP_TFTP_PATH}/u-boot-v2-environment.XXXXXX")" -chmod 644 "${PTXDIST_SETENV_U_BOOT_V2_ENV}" +PTXDIST_SETENV_ENV_IMAGE="$(mktemp "${PTXCONF_BOARDSETUP_TFTP_PATH}/environment_image.XXXXXX")" +chmod 644 "${PTXDIST_SETENV_ENV_IMAGE}" -"${PTXDIST_TOPDIR}/tests/kwrapper" setenv "${CONFFILE}" "${PTXDIST_SETENV_U_BOOT_V2_ENV}" +"${PTXDIST_TOPDIR}/tests/kwrapper" setenv "${CONFFILE}" "${PTXDIST_SETENV_ENV_IMAGE}" -rm -rf "${PTXDIST_SETENV_U_BOOT_V2_ENV}" +rm -rf "${PTXDIST_SETENV_ENV_IMAGE}" |