[pacman-dev] [PATCH 4/7] repo-add: check early for xdelta if it is needed
Allan McRae
allan at archlinux.org
Sun Mar 15 10:49:04 UTC 2015
The check for xdelta3 was done as needed (and not in all cases). Do this
check early so that repo-add does not abort part way through.
Signed-off-by: Allan McRae <allan at archlinux.org>
---
scripts/repo-add.sh.in | 28 ++++++++++++++++++++++++----
1 file changed, 24 insertions(+), 4 deletions(-)
diff --git a/scripts/repo-add.sh.in b/scripts/repo-add.sh.in
index d496354..c16295b 100644
--- a/scripts/repo-add.sh.in
+++ b/scripts/repo-add.sh.in
@@ -212,6 +212,28 @@ check_gpg() {
fi
}
+check_xdelta() {
+ local need_xdelta=0
+
+ if (( DELTA )); then
+ need_xdelta=1
+ else
+ if [[ $cmd == "repo-add" ]];
+ for f in ${args[@]:1}; do
+ case $f in
+ *.delta) need_xdelta=1 ;;
+ *) ;;
+ done
+ fi
+
+ if (( need_xdelta )); then
+ if ! type xdelta3 &>/dev/null; then
+ error "$(gettext "Cannot find the xdelta3 binary! Is xdelta3 installed?")"
+ exit 1
+ fi
+ fi
+}
+
# sign the package database once repackaged
create_signature() {
(( ! SIGN )) && return
@@ -525,10 +547,6 @@ add() {
if [[ ${1##*.} == "delta" ]]; then
deltafile=$1
msg "$(gettext "Adding delta '%s'")" "$deltafile"
- if ! type xdelta3 &>/dev/null; then
- error "$(gettext "Cannot find the xdelta3 binary! Is xdelta3 installed?")"
- exit 1
- fi
if db_write_delta "$deltafile"; then
return 0
else
@@ -736,6 +754,8 @@ if (( SIGN || KEY || VERIFY )); then
check_gpg
fi
+check_xdelta
+
fail=0
for arg in "${args[@]:1}"; do
case $cmd in
--
2.3.3
More information about the pacman-dev
mailing list