commitpkg: check all files at once for version control
Instead of dying at the first sight of an unversioned file, this lets commitpkg dump all known unversioned files at once. Signed-off-by: Dave Reisner <dreisner@archlinux.org> Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
This commit is contained in:
parent
9974309cee
commit
c4f72f781b
22
commitpkg.in
22
commitpkg.in
|
@ -55,24 +55,28 @@ case "$cmd" in
|
|||
;;
|
||||
esac
|
||||
|
||||
# check if all local source files are under version control
|
||||
# find files which should be under source control
|
||||
needsversioning=()
|
||||
for s in "${source[@]}"; do
|
||||
if [[ $s != *://* ]] && ! svn status -v "$s@" | grep -q '^[ AMRX~]'; then
|
||||
die "%s is not under version control" "$s"
|
||||
fi
|
||||
[[ $s != *://* ]] && needsversioning+=("$s")
|
||||
done
|
||||
|
||||
# check if changelog and install files are under version control
|
||||
for i in 'changelog' 'install'; do
|
||||
while read -r file; do
|
||||
# evaluate any bash variables used
|
||||
eval file=\"$(sed 's/^\(['\''"]\)\(.*\)\1$/\2/' <<< "$file")\"
|
||||
if ! svn status -v "${file}" | grep -q '^[ AMRX~]'; then
|
||||
die "%s is not under version control" "$file"
|
||||
fi
|
||||
needsversioning+=("$file")
|
||||
done < <(sed -n "s/^[[:space:]]*$i=//p" PKGBUILD)
|
||||
done
|
||||
|
||||
# assert that they really are controlled by SVN
|
||||
if (( ${#needsversioning[*]} )); then
|
||||
# svn status's output is only two columns when the status is unknown
|
||||
while read -r status filename; do
|
||||
[[ $status = '?' ]] && unversioned+=("$filename")
|
||||
done < <(svn status -v "${needsversioning[@]}")
|
||||
(( ${#unversioned[*]} )) && die "%s is not under version control" "${unversioned[@]}"
|
||||
fi
|
||||
|
||||
rsyncopts=(-e ssh -p --chmod=ug=rw,o=r -c -h -L --progress --partial -y)
|
||||
archreleaseopts=()
|
||||
while getopts ':l:a:s:f' flag; do
|
||||
|
|
Loading…
Reference in New Issue