[arch-projects] [devtools] [PATCH 1/3] commitpkg: Avoid redundant use of grep(1)

Allan McRae allan at archlinux.org
Tue Aug 9 17:17:52 EDT 2011


On 10/08/11 06:53, Lukas Fleischer wrote:
> We already sourced the PKGBUILD, so no need to grep the name of the
> install script and changelog file. Just use "$install" and "$changelog"
> instead.

Does this work with split packages each having their own install file?


>
> Also, use bash patterns instead of using grep(1) to check if a source
> file contains the string "://".
>
> Signed-off-by: Lukas Fleischer<archlinux at cryptocrack.de>
> ---
>   commitpkg |   19 +++++++------------
>   1 files changed, 7 insertions(+), 12 deletions(-)
>
> diff --git a/commitpkg b/commitpkg
> index 9856df1..cfc2727 100755
> --- a/commitpkg
> +++ b/commitpkg
> @@ -79,21 +79,16 @@ esac
>
>   # check if all local source files are under version control
>   for s in ${source[@]}; do
> -	echo $s | grep -Fvq '://'&&  \
> -	svn status $s | grep -q '^\?'&&  \
> -	abort "$s is not under version control"
> +	if [[ $s != *://* ]]&&  svn status $s | grep -q '^\?'; then
> +		abort "$s is not under version control"
> +	fi
>   done
>
>   # check if changelog and install files are under version control
> -for i in 'changelog' 'install'; do
> -	filelist=$(sed -n "s/^[[:space:]]*$i=//p" PKGBUILD)
> -	for file in $filelist; do
> -		# evaluate any bash variables used
> -		eval file=${file}
> -		if svn status ${file} | grep -q '^\?'; then
> -			abort "${file} is not under version control"
> -		fi
> -	done
> +for file in "$changelog" "$install"; do
> +	if [[ -n ${file} ]]&&  svn status ${file} | grep -q '^\?'; then
> +		abort "${file} is not under version control"
> +	fi
>   done
>
>   # see if any limit options were passed, we'll send them to rsync



More information about the arch-projects mailing list