From a6dd0e63392310733abb84bbdbd2ec5299251d8a Mon Sep 17 00:00:00 2001 From: Fabian Dellwing Date: Fri, 18 Aug 2023 11:48:04 +0200 Subject: [PATCH] Ports: Don't set previously unset environment variables Co-authored-by: Tim Schumacher Co-authored-by: Jelle Raaijmakers --- Ports/.strip_env.sh | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/Ports/.strip_env.sh b/Ports/.strip_env.sh index 011bce4fa91..bd6404a5a85 100755 --- a/Ports/.strip_env.sh +++ b/Ports/.strip_env.sh @@ -1,13 +1,27 @@ #!/usr/bin/env bash -exec env -i SERENITY_STRIPPED_ENV=1 \ - HOME="${HOME}" \ - USER="${USER}" \ - TERM="${TERM}" \ - PATH="${PATH}" \ - EDITOR="${EDITOR:-}" \ - MAKEJOBS="${MAKEJOBS:-}" \ - IN_SERENITY_PORT_DEV="${IN_SERENITY_PORT_DEV:-}" \ - SERENITY_ARCH="${SERENITY_ARCH:-}" \ - SERENITY_TOOLCHAIN="${SERENITY_TOOLCHAIN:-}" \ - "${@}" +environment_variables=( + "HOME=${HOME}" + "PATH=${PATH}" + "SERENITY_STRIPPED_ENV=1" + "TERM=${TERM}" + "USER=${USER}" +) + +# If any of the following optional variables are set, keep them. +keep_environment_variables=( + 'EDITOR' + 'IN_SERENITY_PORT_DEV' + 'MAKEJOBS' + 'SERENITY_ARCH' + 'SERENITY_TOOLCHAIN' + 'VISUAL' +) + +for environment_variable_name in "${keep_environment_variables[@]}"; do + if [ -v "${environment_variable_name}" ]; then + environment_variables+=("${environment_variable_name}=${!environment_variable_name}") + fi +done + +exec env -i "${environment_variables[@]}" "${@}"