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. Also, use bash patterns instead of using grep(1) to check if a source file contains the string "://". Signed-off-by: Lukas Fleischer <archlinux@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 -- 1.7.6