]> git.pld-linux.org Git - projects/pld-ftp-admin.git/blobdiff - modules/ftptree.py
- print some debugging info when things go wrong way
[projects/pld-ftp-admin.git] / modules / ftptree.py
index 5f076965b8eda179318057d2028b5c5f0aa5a742..a8798975106ef6c07e24f01f16ba136ccc863996 100644 (file)
@@ -29,8 +29,10 @@ def rm(file):
     #print 'rm: '+file
 
 def mv(src, dst):
-    os.rename(src, dst+'/'+src.split('/')[-1])
-    #print "mv: %s %s" % (src, dst+'/'+src.split('/')[-1])
+    try:
+        os.rename(src, dst+'/'+src.split('/')[-1])
+    except OSError, e:
+        pinfo "os.rename(%s, %s): %s" % (src, dst+'/'+src.split('/')[-1], e)
 
 class Pkg(BasePkg):
     def __init__(self, nvr, tree):
@@ -40,14 +42,32 @@ class Pkg(BasePkg):
         self.release=nvr.split('-')[-1]
         self.marked4removal=False
         self.marked4moving=False
+        self.marked4movingpool=[]
         self.errors=[]
         self.warnings=[]
 
+    def __cmp__(self, pkg):
+        if self.name > pkg.name:
+            return 1
+        elif self.name < pkg.name:
+            return -1
+        else:
+            return rpm.labelCompare(('0', self.version, self.release),
+                                    ('0', pkg.version, pkg.release))
+
     def mark4moving(self):
         if not self.marked4moving:
+            # Only one pkg in this pool can be marked for moving
+            for pkg in self.marked4movingpool:
+                pkg.unmark4moving()
             self.tree.marked4moving.append(self)
             self.marked4moving=True
 
+    def unmark4moving(self):
+        if self.marked4moving:
+            self.tree.marked4moving.remove(self)
+            self.marked4moving=False
+
     def mark4removal(self):
         if not self.marked4removal:
             self.tree.marked4removal.append(self)
@@ -147,6 +167,9 @@ class FtpTree(BaseFtpTree):
     def keys(self):
         return self.pkgnames
 
+    def values(self):
+        return self.loadedpkgs.values()
+
     def checktree(self, dsttree):
         self.__checkbuild(self.loadedpkgs.values())
         self.__checkarchs(dsttree, self.loadedpkgs.values())
This page took 0.027234 seconds and 4 git commands to generate.