[RARSLAVE] Add main program logic
authorIra W. Snyder <devel@irasnyder.com>
Mon, 25 Dec 2006 04:56:05 +0000 (20:56 -0800)
committerIra W. Snyder <devel@irasnyder.com>
Mon, 25 Dec 2006 04:56:05 +0000 (20:56 -0800)
Add the main program logic to the PAR2Set class. This handles verifying,
repairing, joining, extraction, and deletion of the leftover files in the
PAR set.

This also converts over the main() code to use this function exclusively.

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

index fab1f69..89d526d 100644 (file)
@@ -322,6 +322,23 @@ class PAR2Set (object):
        def __eq__ (self, rhs):
                return self.__list_eq (self.likely_files, rhs.likely_files)
 
+       def run_all (self):
+               par2files = find_par2_files (self.likely_files)
+               par2head = par2files[0]
+
+               join = is_noextract (self.likely_files)
+
+               # Repair Stage
+               repairer = RarslaveRepairer (self.dir, par2head, join)
+               repairer.checkAndRepair () # FIXME: Check return value
+
+               # Extraction Stage
+               extractor = find_extraction_heads (self.dir, self.likely_files)
+               extractor.extract ('extract_dir') # FIXME: Get it from the config
+
+               # Deletion Stage
+               printlist ( find_deleteable_files (self.likely_files) )
+
 def generate_all_parsets (dir):
        # Generate all parsets in the given directory.
 
@@ -338,75 +355,13 @@ def generate_all_parsets (dir):
        return parsets
 
 def main ():
-       # Setup stage
-       print '\nSETUP STAGE'
-       DIR = os.path.abspath ('test_material/01/')
-       p2files = find_all_par2_files (DIR)
-       p2file = p2files[0]
-
-       # Repair stage
-       print '\nREPAIR STAGE'
-       repairer = RarslaveRepairer (DIR, p2file)
-       repairer.checkAndRepair ()
-
-       # Extraction stage
-       print '\nEXTRACTION STAGE'
-       files = find_likely_files (get_basename (p2file), DIR)
-       extractor = find_extraction_heads (DIR, files)
-       extractor.extract('extract_dir')
-
-       # Deletion stage
-       print '\nDELETION STAGE'
-       printlist ( find_deleteable_files (files) )
-
-       print '\n\n'
-
-       # Setup stage
-       print '\nSETUP STAGE'
-       DIR = os.path.abspath ('test_material/13/')
-       p2files = find_all_par2_files (DIR)
-       p2file = p2files[0]
-
-       # Repair stage
-       print '\nREPAIR STAGE'
-       RarslaveRepairer (DIR, p2file, join=True).checkAndRepair ()
-
-       # Extraction stage
-       print '\nEXTRACTION STAGE'
-       files = find_likely_files (get_basename (p2file), DIR)
-       find_extraction_heads (DIR, files).extract ('extract_dir')
-
-       # Deletion stage
-       print '\nDELETION STAGE'
-       printlist ( find_deleteable_files (files) )
-
-       print '\n\n'
-
-       # Setup stage
-       print '\nSETUP STAGE'
-       DIR = os.path.abspath ('test_material/14/')
-       p2files = find_all_par2_files (DIR)
-       p2file = p2files[0]
-
-       # Repair stage
-       print '\nREPAIR STAGE'
-       RarslaveRepairer (DIR, p2file, join=True).checkAndRepair ()
-
-       # Extraction stage
-       print '\nEXTRACTION STAGE'
-       files = find_likely_files (get_basename (p2file), DIR)
-       find_extraction_heads (DIR, files).extract ('extract_dir')
-
-       # Deletion stage
-       print '\nDELETEION STAGE'
-       printlist ( find_deleteable_files (files) )
-
-       #### TESTING ####
-       parsets = generate_all_parsets ('test_material/02/')
-       print '\n\nPARSETS LEN:', len(parsets)
-       for p in parsets:
-               print p.likely_files[0]
+       TOPDIR = os.path.abspath ('test_material')
 
+       for (dir, subdirs, files) in os.walk (TOPDIR):
+               print 'DEBUG: IN DIRECTORY:', dir
+               parsets = generate_all_parsets (dir)
+               for p in parsets:
+                       p.run_all ()
 
 if __name__ == '__main__':
        main ()