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 <[email protected]>
---
 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

Reply via email to