Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

Created December 27, 2013 11:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/8146108 to your computer and use it in GitHub Desktop.
Save anonymous/8146108 to your computer and use it in GitHub Desktop.
stdin
--- /usr/bin/pkgmk 2013-12-19 14:53:04.000000000 +0100
+++ pkgmk 2013-12-27 12:53:08.465039334 +0100
@@ -46,11 +46,14 @@ error() {
}
get_filename() {
- if [[ $1 =~ ^(http|https|ftp|file)://.*/(.+) ]]; then
- echo "$PKGMK_SOURCE_DIR/${BASH_REMATCH[2]}"
- else
- echo $1
+ local FILE=$1
+ if [[ $FILE =~ ^(http|https|ftp|file)://.*/(.+) ]]; then
+ FILE="$PKGMK_SOURCE_DIR/${BASH_REMATCH[2]}"
fi
+ if [[ $FILE =~ (.*),(.*) ]]; then
+ FILE="$PKGMK_SOURCE_DIR/${BASH_REMATCH[2]}"
+ fi
+ echo $FILE
}
get_basename() {
@@ -95,14 +98,15 @@ check_file() {
}
download_file() {
- info "Downloading '$1'."
+ local FILE=$1
+ info "Downloading '$FILE'."
if [ ! "`type -p wget`" ]; then
error "Command 'wget' not found."
exit $E_GENERAL
fi
- LOCAL_FILENAME=`get_filename $1`
+ LOCAL_FILENAME=`get_filename $FILE`
LOCAL_FILENAME_PARTIAL="$LOCAL_FILENAME.partial"
DOWNLOAD_OPTS="--passive-ftp --no-directories --tries=3 --waitretry=3 \
--directory-prefix=$PKGMK_SOURCE_DIR \
@@ -115,7 +119,9 @@ download_file() {
error=1
- BASENAME=`get_basename $1`
+ FILE=${FILE%,*}
+
+ BASENAME=`get_basename $FILE`
for REPO in ${PKGMK_SOURCE_MIRRORS[@]}; do
REPO="`echo $REPO | sed 's|/$||'`"
wget $RESUME_CMD $DOWNLOAD_OPTS $PKGMK_WGET_OPTS $REPO/$BASENAME
@@ -127,7 +133,7 @@ download_file() {
if [ $error != 0 ]; then
while true; do
- wget $RESUME_CMD $DOWNLOAD_OPTS $PKGMK_WGET_OPTS $1
+ wget $RESUME_CMD $DOWNLOAD_OPTS $PKGMK_WGET_OPTS $FILE
error=$?
if [ $error != 0 ] && [ "$RESUME_CMD" ]; then
info "Partial download failed, restarting"
@@ -140,7 +146,7 @@ download_file() {
fi
if [ $error != 0 ]; then
- error "Downloading '$1' failed."
+ error "Downloading '$FILE' failed."
exit $E_DOWNLOAD
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment