diff options
author | Marc Kleine-Budde <mkl@pengutronix.de> | 2009-06-09 19:02:58 +0000 |
---|---|---|
committer | Marc Kleine-Budde <mkl@pengutronix.de> | 2009-06-09 19:02:58 +0000 |
commit | a5972ac43e45efac5c5cac1a1ace1af1bd930acc (patch) | |
tree | 151afa00224f3dceb2aba7147523ca349b78d37f /bin | |
parent | 2c3b23124276e4ad878bcb632ba45d0d88f783bb (diff) | |
download | ptxdist-a5972ac43e45efac5c5cac1a1ace1af1bd930acc.tar.gz ptxdist-a5972ac43e45efac5c5cac1a1ace1af1bd930acc.tar.xz |
[ptxdist] tidy up environment by default
With this commit ptxdist clears the environment before starting. Use
"ptxdist setup" -> "Developer Options" ->
"environment variable whitelist" to specify a list of space seperated
variables to preserve.
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
git-svn-id: https://svn.pengutronix.de/svn/ptxdist/trunks/ptxdist-trunk@10669 33e552b5-05e3-0310-8538-816dae2090ed
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/ptxdist | 53 |
1 files changed, 37 insertions, 16 deletions
diff --git a/bin/ptxdist b/bin/ptxdist index 22332d5bf..1520c6563 100755 --- a/bin/ptxdist +++ b/bin/ptxdist @@ -1,9 +1,7 @@ #!/bin/bash -export LANG=C -export LC_ALL=POSIX -export LC_CTYPE=POSIX -export CDPATH= +LANG=C +LC_ALL=POSIX PTXDIST_ARGS_FULL=("${@}") PROMPT="ptxdist: " @@ -1215,12 +1213,6 @@ parse_first() PTX_collectionconfig_SET="false" PTX_toolchain_SET="false" - unset PTX_MAKE_ARGS - unset PTX_DEBUG - unset PTX_FORCE - unset PTXDIST_FORCE_DOWNLOAD - unset PTX_SLEDGEHAMMER - set -- "${PTXDIST_ARGS_FULL[@]}" while [ ${#} -ne 0 ]; do arg="${1}" @@ -1937,6 +1929,38 @@ setup_topdir() { } + +# +# cleanup environment +# +# +setup_env() { + # + # here some ugly hard coded values: + # + source "${PTXDIST_TOPDIR}/scripts/ptxdist_version.sh" && + + local ptxrc="${HOME}/.ptxdistrc.${PTXDIST_VERSION_FULL}" + if [ -e "${ptxrc}" ]; then + source "${ptxrc}" + fi || return + + # let shell split by IFS + set -- ${PTXCONF_SETUP_ENV_WHITELIST} + whitelist="${@}" + whitelist="${whitelist:+|}${whitelist/ /|}" + + unset $(/usr/bin/env | \ + sed -n -e "s/^\([^=[:space:]]\+\)=.*$/\1/p" | \ + egrep -v "^(PWD|HOME|USER|PATH|TERM|COLUMNS|LINES|DISPLAY|http_proxy|ftp_proxy${whitelist})$" ) + + ######## the environment is clean now ######## + + export LANG=C + export LC_ALL=POSIX +} + + # # deletes ptxdist's temporary storage # closes logfile @@ -2021,8 +2045,6 @@ setup_libs_early() { # PTXDIST_PTXRC # setup_config() { - local cpus pmf_intern - eval PTXDIST_PTXRC_DEFAULT="${PTXDIST_PTXRC_DEFAULT}" PTXDIST_PTXRC="${PTXDIST_PTXRC_DEFAULT}" @@ -2036,7 +2058,7 @@ setup_config() { # # source default values first, let the user overwrite them # - ptxd_source_kconfig "${rc_default}" || return + ptxd_source_kconfig "${rc_default}" && ptxd_source_kconfig "${rc_user}" || return # @@ -2087,7 +2109,7 @@ setup_config() { else cpus=1 fi - pmf_intern="-j$(( $cpus * 2 ))" + local pmf_intern="-j$(( $cpus * 2 ))" # # user may override these, via cmdline @@ -2125,8 +2147,6 @@ setup_platform() { if [ -e "${PTXDIST_PLATFORMCONFIG}" ]; then cfg_dir="$(dirname "$(readlink -f "${PTXDIST_PLATFORMCONFIG}")")" || return - else - unset cfg_dir fi PTXDIST_PLATFORMCONFIGDIR="${cfg_dir}" @@ -2251,6 +2271,7 @@ main() { check_path && setup_topdir && + setup_env && setup_traps && setup_libs_early && # --- libs are available from here --- |