[RARSLAVE] Fix extraction
authorIra W. Snyder <devel@irasnyder.com>
Tue, 26 Dec 2006 23:45:25 +0000 (15:45 -0800)
committerIra W. Snyder <devel@irasnyder.com>
Tue, 26 Dec 2006 23:45:25 +0000 (15:45 -0800)
Important bugfix. If the extraction directory is None, then we can safely
assume that we just don't want to do anything but a default extraction, not
outputting the files anywhere special.

Signed-off-by: Ira W. Snyder <devel@irasnyder.com>
rarslave.py

index 93debab..2e9861a 100644 (file)
@@ -23,11 +23,11 @@ class RarslaveExtractor (object):
 
                self.heads.append (os.path.join (dir, head))
 
-       def extract (self, todir):
+       def extract (self, todir=None):
                # Extract all heads of this set
 
                # Create the directory $todir if it doesn't exist
-               if not os.path.isdir (todir):
+               if todir != None and not os.path.isdir (todir):
                        # TODO: LOGGER
                        try:
                                os.makedirs (todir)
@@ -44,7 +44,11 @@ class RarslaveExtractor (object):
 
                # Call the extraction function on each head
                for h in self.heads:
-                       extraction_func (h, todir)
+                       if todir == None:
+                               # Run in the head's directory
+                               extraction_func (h, os.path.dirname (h))
+                       else:
+                               extraction_func (h, todir)
 
        def __extract_rar (self, file, todir):
                assert os.path.isfile (file)