[pacman-dev] [PATCH 2/2] makepkg: also move restore_envvars handling into libmakepkg

Eli Schwartz eschwartz at archlinux.org
Tue Apr 16 17:10:47 UTC 2019


On 4/16/19 12:59 PM, Dave Reisner wrote:
> On Tue, Apr 16, 2019 at 12:22:38PM -0400, Eli Schwartz wrote:
>> Signed-off-by: Eli Schwartz <eschwartz at archlinux.org>
>> ---
>>  scripts/libmakepkg/util/config.sh.in | 20 ++++++++++++++++++++
>>  scripts/makepkg.sh.in                |  6 +-----
>>  2 files changed, 21 insertions(+), 5 deletions(-)
>>
>> diff --git a/scripts/libmakepkg/util/config.sh.in b/scripts/libmakepkg/util/config.sh.in
>> index fdfeef89..2a6a0ae3 100644
>> --- a/scripts/libmakepkg/util/config.sh.in
>> +++ b/scripts/libmakepkg/util/config.sh.in
>> @@ -53,3 +53,23 @@ source_makepkg_config() {
>>  		fi
>>  	fi
>>  }
>> +
>> +# load makepkg.conf by sourcing the configuration files, and preserving
>> +# existing environment settings
>> +load_makepkg_config() {
>> +	# $1: override system config file
>> +
>> +	local MAKEPKG_CONF=${1:- at sysconfdir@/makepkg.conf}
>> +
>> +	# preserve environment variables to override makepkg.conf
>> +	local restore_envvars=$(
>> +		for var in PKGDEST SRCDEST SRCPKGDEST LOGDEST BUILDDIR PKGEXT SRCEXT GPGKEY PACKAGER CARCH; do
>> +			# declare -p does not work inside a function due to being marked as local
>> +			[[ -v $var ]] && printf '%s=%s\n' "$var" "${var at Q}"
> 
> Shouldn't this be "${!var at Q}"?

Oops, will fix.

>> +		done
>> +	)
>> +
>> +	source_makepkg_config "$MAKEPKG_CONF"
>> +
>> +	eval "$restore_envvars"
>> +}
>> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
>> index 08ec2a15..7a65d0f2 100644
>> --- a/scripts/makepkg.sh.in
>> +++ b/scripts/makepkg.sh.in
>> @@ -1098,15 +1098,11 @@ done
>>  trap 'trap_exit INT "$(gettext "Aborted by user! Exiting...")"' INT
>>  trap 'trap_exit USR1 "$(gettext "An unknown error has occurred. Exiting...")"' ERR
>>  
>> -# preserve environment variables to override makepkg.conf
>> -restore_envvars=$(declare -p PKGDEST SRCDEST SRCPKGDEST LOGDEST BUILDDIR PKGEXT SRCEXT GPGKEY PACKAGER CARCH 2>/dev/null || true)
>>  
>>  # default config is makepkg.conf
>>  MAKEPKG_CONF=${MAKEPKG_CONF:-$confdir/makepkg.conf}
>>  
>> -source_makepkg_config "$MAKEPKG_CONF"
>> -
>> -eval "$restore_envvars"
>> +load_makepkg_config "$MAKEPKG_CONF"
>>  
>>  # override settings from extra variables on commandline, if any
>>  if (( ${#extra_environment[*]} )); then
>> -- 
>> 2.21.0


-- 
Eli Schwartz
Bug Wrangler and Trusted User

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 1601 bytes
Desc: OpenPGP digital signature
URL: <https://lists.archlinux.org/pipermail/pacman-dev/attachments/20190416/c9f69f94/attachment-0001.sig>


More information about the pacman-dev mailing list