[pacman-dev] [PATCH] makepkg: allow make-style environment var overrides

Allan McRae allan at archlinux.org
Sun Aug 4 22:58:29 EDT 2013


On 04/08/13 02:26, Dave Reisner wrote:
> This allows for VAR=value and VAR+=value variable declarations.
> 
> Signed-off-by: Dave Reisner <dreisner at archlinux.org>
> ---
> Similar to the RFC I sent but with the addition of support for
> appending, not just overriding (as make allows as well).
> 
>  doc/makepkg.8.txt     |  2 +-
>  scripts/makepkg.sh.in | 15 +++++++++++++++
>  2 files changed, 16 insertions(+), 1 deletion(-)
> 
> diff --git a/doc/makepkg.8.txt b/doc/makepkg.8.txt
> index 899858e..512f8ed 100644
> --- a/doc/makepkg.8.txt
> +++ b/doc/makepkg.8.txt
> @@ -11,7 +11,7 @@ makepkg - package build utility
>  
>  Synopsis
>  --------
> -'makepkg' [options]
> +'makepkg' [options] [ENVVAR=value] [ENVVAR+=value] ...
>  
>  
>  Description
> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
> index a2d0d7d..59013f6 100644
> --- a/scripts/makepkg.sh.in
> +++ b/scripts/makepkg.sh.in
> @@ -2624,6 +2624,16 @@ while true; do
>  	shift
>  done
>  
> +# attempt to consume any extra argv as environment variables. this supports
> +# overriding (e.g. CC=clang) as well as overriding (e.g. CFLAGS+=' -g').
> +extra_environment=()
> +while [[ $1 ]]; do
> +	if [[ $1 = ?(_[[:alpha:]])+([[:alnum:]_])?(+)=* ]]; then

This matches "1=2" which then bails on the export.   Should it be:

+(_[[:alpha:]])?([[:alnum:]_])?(+)=*

> +		extra_environment+=("$1")
> +	fi
> +	shift
> +done
> +
>  # setup signal traps
>  trap 'clean_up' 0
>  for signal in TERM HUP QUIT; do
> @@ -2706,6 +2716,11 @@ if [[ ! -w $BUILDDIR ]]; then
>  	exit 1
>  fi
>  
> +# override settings from extra variables on commandline, if any
> +if (( ${#extra_environment[*]} )); then
> +	export "${extra_environment[@]}"
> +fi
> +
>  PKGDEST=${_PKGDEST:-$PKGDEST}
>  PKGDEST=${PKGDEST:-$startdir} #default to $startdir if undefined
>  if (( ! (NOBUILD || GENINTEG) )) && [[ ! -w $PKGDEST ]]; then
> 



More information about the pacman-dev mailing list