aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrhatto <rhatto@04377dda-e619-0410-9926-eae83683ac58>2007-01-31 23:23:48 +0000
committerrhatto <rhatto@04377dda-e619-0410-9926-eae83683ac58>2007-01-31 23:23:48 +0000
commit334bf2308836e855ed6661ba1c129f7fd5b200a2 (patch)
tree4573246a346d8ae375090b29f7634c3a8a7448c5
parent52f5dc20a540a26dd3661358c780bc1466ebe7f7 (diff)
downloadsimplepkg-334bf2308836e855ed6661ba1c129f7fd5b200a2.tar.gz
simplepkg-334bf2308836e855ed6661ba1c129f7fd5b200a2.tar.bz2
simplaret: file retrieval enhancements
git-svn-id: svn+slack://slack.fluxo.info/var/svn/simplepkg@135 04377dda-e619-0410-9926-eae83683ac58
-rw-r--r--conf/simplepkg.conf.new6
-rw-r--r--lib/common.sh13
-rwxr-xr-xsrc/simplaret24
3 files changed, 37 insertions, 6 deletions
diff --git a/conf/simplepkg.conf.new b/conf/simplepkg.conf.new
index e1b989d..bf62450 100644
--- a/conf/simplepkg.conf.new
+++ b/conf/simplepkg.conf.new
@@ -46,8 +46,12 @@ STORAGE="/var/simplaret/packages"
# to enable it, set to "1" or "yes"
PASSIVE_FTP="1"
+# http retrieval tool
+# available parameters are "wget" or "curl"
+HTTP_TOOL="wget"
+
# ftp retrieval tool
-# available parameters are "wget" or "ncftpget"
+# available parameters are "wget", "curl" or "ncftpget"
FTP_TOOL="wget"
# set connection timeout in seconds
diff --git a/lib/common.sh b/lib/common.sh
index a140ccb..8647945 100644
--- a/lib/common.sh
+++ b/lib/common.sh
@@ -193,6 +193,7 @@ function eval_config {
ROOT_PRIORITY="`eval_parameter ROOT_PRIORITY patches slackware extra testing pasture`"
SIMPLARET_PURGE_WEEKS="`eval_parameter SIMPLARET_PURGE_WEEKS 0`"
FTP_TOOL="`eval_parameter FTP_TOOL wget`"
+ HTTP_TOOL="`eval_parameter HTTP_TOOL wget`"
CONNECT_TIMEOUT="`eval_parameter CONNECT_TIMEOUT 0`"
SIMPLARET_CLEAN="`eval_boolean_parameter SIMPLARET_CLEAN 1`"
@@ -239,6 +240,18 @@ function eval_config {
VERSION="$DEFAULT_VERSION"
fi
+ if [ "$FTP_TOOL" != "wget" ] || [ "$FTP_TOOL" != "curl" ] || [ "$FTP_TOOL" != "ncftpget" ]; then
+ echo "$1 configuration error: invalid value $FTP_TOOL for config parameter FTP_TOOL"
+ echo "$1 assuming value \"wget\" for variable FTP_TOOL"
+ FTP_TOOL="wget"
+ fi
+
+ if [ "$HTTP_TOOL" != "wget" ] || [ "$HTTP_TOOL" != "curl" ]; then
+ echo "$1 configuration error: invalid value $HTTP_TOOL for config parameter HTTP_TOOL"
+ echo "$1 assuming value \"wget\" for variable HTTP_TOOL"
+ HTTP_TOOL="wget"
+ fi
+
if which $SIMPLARET &> /dev/null; then
if [ "$SIMPLARET_UPDATE" == "1" ]; then
if [ "$2" == "-u" ]; then
diff --git a/src/simplaret b/src/simplaret
index fd8113a..0bc27d6 100755
--- a/src/simplaret
+++ b/src/simplaret
@@ -38,7 +38,8 @@ function simplaret_usage {
function simplaret_get_index {
for file in `simplaret_metafiles`; do
- simplaret_download $1 $file $2
+ echo $BASENAME: getting $1/$file
+ simplaret_download $1 $file $2 --no-verbose
done
}
@@ -69,10 +70,11 @@ function simplaret_check_index {
function simplaret_download {
# download a file from a repo to a folder
- # usage: simplaret <repository_url> <package> <destination-folder>
+ # usage: simplaret <repository_url> <package> <destination-folder> [--no-verbose]
local protocol file
- local wget_timeout wget_passive_ftp
+ local wget_timeout wget_passive_ftp wget_verbose
+ local curl_timeout curl_passive_ftp
local ncftpget_timeout ncftpget_passive_ftp
protocol="`echo $1 | cut -d : -f 1`"
@@ -85,19 +87,31 @@ function simplaret_download {
if [ ! -z "$CONNECT_TIMEOUT" ] || [ "$CONNECT_TIMEOUT" != "0" ]; then
wget_timeout="--timeout $CONNECT_TIMEOUT"
ncftpget_timeout="-t $CONNECT_TIMEOUT"
+ curl_timeout="--connect-timeout $CONNECT_TIMEOUT"
+ fi
+
+ if [ "$4" == "--no-verbose" ]; then
+ wget_verbose="--no-verbose"
fi
if [ "$protocol" == "http" ]; then
- wget $wget_timeout $1/$2 -O $3/$file
+ if [ "$HTTP_TOOL" == "wget" ]; then
+ wget $wget_timeout $wget_verbose $1/$2 -O $3/$file
+ elif [ "$HTTP_TOOL" == "curl" ]; then
+ curl $curl_timeout $1/$2 > $3/$file
+ fi
elif [ "$protocol" == "ftp" ]; then
if [ "$PASSIVE_FTP" == "1" ]; then
wget_passive_ftp="--passive-ftp"
ncftpget_passive_ftp="-F"
+ curl_passive_ftp="--ftp-pasv"
fi
if [ "$FTP_TOOL" == "ncftpget" ]; then
ncftpget -c $ncftpget_timeout $ncftpget_passive_ftp $1/$2 > $3/$file
elif [ "$FTP_TOOL" == "wget" ]; then
- wget $wget_timeout $wget_passive_ftp $1/$2 -O $3/$file
+ wget $wget_timeout $wget_passive_ftp $wget_verbose $1/$2 -O $3/$file
+ elif [ "$FTP_TOOL" == "curl" ]; then
+ curl $curl_timeout $curl_passive_ftp $1/$2 > $3/$file
else
echo $BASENAME: error: invalid value for config variable FTP_TOOL: $FTP_TOOL
echo $BASENAME: please check your config file $CONF