]> gitweb.fluxo.info Git - simplepkg.git/commitdiff
simplaret: added ncftpget and timeout support, small changes
authorrhatto <rhatto@04377dda-e619-0410-9926-eae83683ac58>
Tue, 23 Jan 2007 13:16:19 +0000 (13:16 +0000)
committerrhatto <rhatto@04377dda-e619-0410-9926-eae83683ac58>
Tue, 23 Jan 2007 13:16:19 +0000 (13:16 +0000)
git-svn-id: svn+slack://slack.fluxo.info/var/svn/simplepkg@113 04377dda-e619-0410-9926-eae83683ac58

conf/repos.conf.new
conf/simplepkg.conf.new
lib/common.sh
src/simplaret

index 26d4eb3f4dd49a48c1ec31a11ae98fecc91e406f..930ff80a4c54bbe7c5e0393365410b257c6a31b2 100644 (file)
@@ -16,7 +16,7 @@ NOARCH="sarava%http://slack.sarava.org/packages/noarch"
 
 # i386 10.2
 REPOS-i386-10.2="sarava%http://slack.sarava.org/packages/slackware/slackware-10.2/"
-PATCHES-i386-10.2="sarava%http://slack.sarava.org/packages/slackware/slackware-10.2/pacthes/"
+PATCHES-i386-10.2="sarava%http://slack.sarava.org/packages/slackware/slackware-10.2/patches/"
 
 # x86_64 10.2
 REPOS-x86_64-10.2="sarava%http://slack.sarava.org/packages/slamd64/slamd64-10.2/"
index 53c4d5ac0aa525bba2abbe2a0b60a9c36bca69e6..028e4d3f52c5cacc550847b6cc8e6cf956ad5804 100644 (file)
@@ -50,6 +50,13 @@ STORAGE="/var/simplaret/packages"
 # to enable it, set to "1" or "yes"
 PASSIVE_FTP="1"
 
+# ftp retrieval tool
+# available parameters are "wget" or "ncftpget"
+FTP_TOOL="wget"
+
+# set connection timeout in seconds
+CONNECT_TIMEOUT="20"
+
 # ROOT repository package priority
 ROOT_PRIORITY="patches slackware extra testing pasture"
 
index ad02f209be5c4966a2907945134166b59b81d64f..aea8ba2fc74cd94a52f818eef1a6877e14d7db5c 100644 (file)
@@ -252,6 +252,8 @@ function eval_config {
     PATCHES_DIR="`eval_parameter PATCHES_DIR /var/simplaret/patches`"
     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`"
+    CONNECT_TIMEOUT="`eval_parameter CONNECT_TIMEOUT 0`"
 
     SIMPLARET_CLEAN="`eval_boolean_parameter SIMPLARET_CLEAN 1`"
     SIMPLARET_DELETE_DOWN="`eval_boolean_parameter SIMPLARET_DELETE_DOWN 1`"
@@ -262,7 +264,7 @@ function eval_config {
     DOWNLOAD_EVEN_APPLIED_PATCHES="`eval_boolean_parameter DOWNLOAD_EVEN_APPLIED_PATCHES 0`"
     PASSIVE_FTP="`eval_boolean_parameter PASSIVE_FTP 0`"
     WARNING="`eval_boolean_parameter WARNING 0`"
-    
+
     DEFAULT_ARCH="`eval_parameter DEFAULT_ARCH $(default_arch)`"
     DEFAULT_VERSION="`eval_parameter DEFAULT_VERSION $(default_version)`"
 
index 97627d6be3f2ed37dbacd2d2e8049f6166b6faa8..b77322ec318f5a4f32c5c2fa534ad9be9db09e5d 100755 (executable)
 #  Place - Suite 330, Boston, MA 02111-1307, USA
 #
 
+BASERNAME="`basename $0`"
 REPOS_CONF="/etc/simplepkg/repos.conf"
 COMMON="/usr/libexec/simplepkg/common.sh"
 
 if [ -f "$COMMON" ]; then
   source $COMMON
 else
-  echo "error: file $COMMON found, check your `basename $0` installation"
+  echo "error: file $COMMON found, check your $BASENAME installation"
   exit 1
 fi
 
 function simplaret_usage {
 
-  echo "usage: [ARCH=otherarch] [VERSION=otherversion] `basename $0` <OPTION> package-name"
+  echo "usage: [ARCH=otherarch] [VERSION=otherversion] $BASENAME <OPTION> package-name"
   echo -e "\t OPTIONS: --update, --upgrade, --search, --get, --get-patches, --purge, --remove"
   exit 1
 
@@ -70,19 +71,37 @@ function simplaret_download {
   # download a file from a repo to a folder
   # usage: simplaret <repository_url> <package> <destination-folder>
 
+  local protocol
+  local wget_timeout wget_passive_ftp
+  local ncftpget_timeout ncftpget_passive_ftp
+
   protocol="`echo $1 | cut -d : -f 1`"
 
   if [ ! -d "$3" ]; then
     mkdir -p $3
   fi
 
+  if [ ! -z "$CONNECT_TIMEOUT" ] || [ "$CONNECT_TIMEOUT" != "0" ]; then
+    wget_timeout="--timeout $CONNECT_TIMEOUT"
+    ncftpget_timeout="-t $CONNECT_TIMEOUT"
+  fi
+
   if [ "$protocol" == "http" ]; then
-    (cd $3 && wget $1/$2)
+    (cd $3 && wget $wget_timeout $1/$2)
   elif [ "$protocol" == "ftp" ]; then
     if [ "$PASSIVE_FTP" == "1" ]; then
-      passive_ftp="--passive-ftp"
+      wget_passive_ftp="--passive-ftp"
+      ncftpget_passive_ftp="-F"
     fi 
-    (cd $3 && wget $passive_ftp $1/$2)
+    if [ "$FTP_TOOL" == "ncftpget" ]; then
+      (cd $3 && ncftpget $ncftpget_timeout $ncftpget_passive_ftp $1/$2)
+    elif [ "$FTP_TOOL" == "wget" ]; then
+      (cd $3 && wget $wget_timeout $wget_passive_ftp $1/$2)
+    else
+      echo $BASENAME: error: invalid value for config variable FTP_TOOL: $FTP_TOOL
+      echo $BASENAME: please check your config file $CONF
+      exit 1
+    fi
   elif [ "$protocol" == "file" ]; then
     url="`echo $1 | sed -e 's/file:\/\///'`"
     cp $url/$2 $3 2> /dev/null
@@ -348,7 +367,7 @@ function simplaret_purge {
     simplaret_set_storage_folder
 
     for file in `find $storage/ $mtime 2> /dev/null`; do
-      for extension in tgz asc meta; do
+      for extension in tgz asc meta txt; do
         if echo $file | grep -qe ".$extension$"; then
           rm $file
         fi
@@ -486,6 +505,7 @@ function simplaret_search_and_download_patch {
 
   # check if the patch was already downloaded
   if echo "$DOWNLOADED_PATCHES" | grep -q " $ARCH:$VERSION:$sugested "; then
+    echo "jail $root needs package $sugested, but it's already downloaded, skipping donwload"
     return
   fi
 
@@ -681,7 +701,7 @@ function simplaret_install {
 
 function simplaret_distro_folder {
 
-  # sets the distro folder
+  # set the distro folder
 
   if [ "$ARCH" == "i386" ]; then
     DISTRO="slackware"
@@ -713,7 +733,7 @@ if [ -z "$1" ]; then
   simplaret_usage
   exit 1
 else
-  eval_config `basename $0`
+  eval_config $BASENAME
 fi
 
 case $1 in