[pacman-dev] [PATCH 1/3] Moved check for download client into getDownloadClient().
Andrew Fyfe
andrew at neptune-one.net
Sun Apr 1 19:20:14 EDT 2007
Signed-off-by: Andrew Fyfe <andrew at neptune-one.net>
diff --git a/scripts/makepkg.in b/scripts/makepkg.in
index 17a500b..5f9adbd 100755
--- a/scripts/makepkg.in
+++ b/scripts/makepkg.in
@@ -184,6 +184,26 @@ in_array() {
return 1
}
+getDownloadClient () {
+ # $1 = Config variable name.
+
+ local agent=$(eval echo \$$1)
+ if [ -z "$agent" ]; then
+ error "$(gettext_eval "\$1 is not configured. Check the /etc/makepkg.conf file.")"
+ error "$(gettext "Aborting...")"
+ exit 1 # $E_CONFIG_ERROR # TODO: error code
+ fi
+
+ local program="$(echo $agent | awk '{print $1 }')"
+ if [ ! -x "$program" ]; then
+ error "$(gettext_eval "The download program \$(basename \$program) is not installed.")"
+ error "$(gettext "Aborting...")"
+ exit 1 # $E_MISSING_PROGRAM # TODO: error code
+ fi
+
+ echo $agent
+}
+
checkdeps() {
[ $# -gt 0 ] || return
@@ -669,59 +689,54 @@ fi
cd "$startdir"
-# retrieve sources
-msg "$(gettext "Retrieving Sources...")"
mkdir -p src
cd "$startdir/src"
+
+msg "$(gettext "Retrieving Sources...")"
for netfile in ${source[@]}; do
file=$(strip_url "$netfile")
if [ -f "../$file" ]; then
msg2 "$(eval_gettext "Found \$file in build dir")"
cp "../$file" .
+ continue
elif [ -f "$SRCDEST/$file" ]; then
msg2 "$(eval_gettext "Using cached copy of \$file")"
cp "$SRCDEST/$file" .
- else
- # check for a download utility
- if [ -z "$FTPAGENT" ]; then
- error "$(gettext "FTPAGENT is not configured. Check the /etc/makepkg.conf file.")"
- msg "$(gettext "Aborting...")"
- exit 1
- fi
- ftpclient=$(echo $FTPAGENT | awk {'print $1'})
- if [ ! -x "$ftpclient" ]; then
- local clientname=$(basename $ftpclient)
- error "$(eval_gettext "ftpclient \$clientname is not installed.")"
- msg "$(gettext "Aborting...")"
- exit 1
- fi
- proto=$(echo "$netfile" | sed 's|://.*||')
- if [ "$proto" != "ftp" -a "$proto" != "http" -a "$proto" != "https" ]; then
+ continue
+ fi
+
+ proto=$(echo $netfile | sed 's|://.*||')
+ case "$proto" in
+ ftp|http|https)
+ dlclient=$(getDownloadClient FTPAGENT) || exit $?;;
+ *)
error "$(eval_gettext "\$netfile was not found in the build directory and is not a proper URL.")"
msg "$(gettext "Aborting...")"
- exit 1
- fi
- msg2 "$(eval_gettext "Downloading \$file")"
- $FTPAGENT "$netfile"
- # fix flyspray bug #3289
- ftpret=$?
- if [ $ftpret -gt 0 ]; then
- error "$(eval_gettext "Failure while downloading \$file")"
- msg "$(gettext "Aborting...")"
- #rm "$file"
- exit 1
- fi
- if [ -n "$SRCDEST" ]; then
- mkdir -p $SRCDEST && cp "$file" $SRCDEST
- if [ $? -ne 0 ]; then
- warning "$(eval_gettext "You do not have correct permissions to cache source in \$SRCDEST")"
- cp "$file" ..
- fi
- else
+ exit 1 # $E_BAD_PKGBUILD # TODO: error code
+ ;;
+ esac
+
+ msg2 "$(gettext_eval "Downloading \$file")"
+ # fix flyspray bug #3289
+ ret=0
+ $dlclient "$netfile" || ret=$?
+ if [ $ret -gt 0 ]; then
+ error "$(gettext "Failure while downloading $file")"
+ msg "$(gettext "Aborting...")"
+ exit 1
+ fi
+
+ if [ -n "$SRCDEST" ]; then
+ mkdir -p "$SRCDEST" && cp "$file" "$SRCDEST" || ret=$?
+ if [ $ret -gt 0 ]; then
+ warning "$(gettext_eval "You do not have correct permissions to cache source in \$SRCDEST")"
cp "$file" ..
fi
+ else
+ cp "$file" ..
fi
done
+unset netfile file dlclient proto ret
if [ "$NOEXTRACT" = "1" -o "$REPKG" = "1" ]; then
warning "$(gettext "Skipping source integrity checks -- using existing src/ tree")"
--
1.5.0.6
More information about the pacman-dev
mailing list