]> gitweb.fluxo.info Git - simplepkg.git/commitdiff
simplaret: new function simplaret_search_and_delete fix simplaret_get behaviour for...
authorrhatto <rhatto@04377dda-e619-0410-9926-eae83683ac58>
Fri, 12 Jan 2007 19:14:50 +0000 (19:14 +0000)
committerrhatto <rhatto@04377dda-e619-0410-9926-eae83683ac58>
Fri, 12 Jan 2007 19:14:50 +0000 (19:14 +0000)
git-svn-id: svn+slack://slack.fluxo.info/var/svn/simplepkg@100 04377dda-e619-0410-9926-eae83683ac58

src/simplaret

index 83d2ea9c56e4e75e1b31c7205fd5709877c741ad..03af06cd9f2fbb5c82d32c11ce2a198e9a034904 100755 (executable)
@@ -381,6 +381,31 @@ function simplaret_purge {
 
 }
 
+function simplaret_search_and_delete {
+
+  for file in `find $2/ -name $1*tgz 2> /dev/null`; do
+    candidate="`basename $file`"
+    if [ "`package_name $candidate`" == "$1" ]; then
+      # check if has the same version and build number, otherwise erase the old one
+      for result in `simplaret_search $(package_name $candidate) --basename-only`; do
+        if [ "`package_name $candidate`" == "`package_name $result`" ] &&       \
+           [ "`package_version $candidate`" == "`package_version $result`" ] && \
+           [ "`package_build $candidate`" == "`package_build $result`" ]; then
+          if [ "$2" != "--silent" ]; then
+            echo package $candidate already downloaded and stored at `dirname $file`
+          else echo $file
+          fi
+          return 0
+        else
+          rm $file
+          break
+        fi
+      done
+    fi
+  done
+
+}
+
 function simplaret_get {
 
   # get a package
@@ -395,27 +420,14 @@ function simplaret_get {
   for repos_type in patches root repos noarch; do
 
     simplaret_set_storage_folder
+    simplaret_search_and_delete $1 $storage
 
-    for file in `find $storage/ -name $1*tgz 2> /dev/null`; do
-      candidate="`basename $file`"
-      if [ "`package_name $candidate`" == "$1" ]; then
-        # check if has the same version and build number, otherwise erase the old one
-        for result in `simplaret_search $(package_name $candidate) --basename-only`; do
-          if [ "`package_name $candidate`" == "`package_name $result`" ] &&       \
-             [ "`package_version $candidate`" == "`package_version $result`" ] && \
-             [ "`package_build $candidate`" == "`package_build $result`" ]; then
-            if [ "$2" != "--silent" ]; then
-              echo package $candidate already downloaded and stored at `dirname $file`
-            else echo $file
-            fi
-            return 0
-          else
-            rm $file
-            break
-          fi
-        done
-      fi
-    done
+    # if repos_type == root, check also if
+    # there is a package on $PATCHES_DIR/root-$repository_name
+    if [ "$repos_type" == "root" ]; then
+      simplaret_repository_name
+      simplaret_search_and_delete $1 $PATCHES_DIR/$ARCH/$VERSION/root-$repository_name
+    fi
 
   done