# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
import logging
-import PAR2Set.Base
-import rsutil.common
+from subprocess import CalledProcessError
+from PAR2Set import Base
-class ExtractFirstBase (PAR2Set.Base.Base):
- """Base class for PAR2Set types which run the extraction routine before
- the repair routine"""
+class ExtractFirstBase(Base):
- def runAll (self):
- """Run the extraction, repair, and delete stages"""
+ ############################################################################
- # Extraction Stage
- try:
- self.runExtract()
- except (RuntimeError, OSError):
- logging.critical('Extraction stage failed for: %s' % self.p2file)
- raise
+ def run(self):
- self.update_matches ()
+ # Extraction Stage
+ try:
+ self.extract ()
+ except (CalledProcessError, OSError):
+ logging.critical('Extraction stage failed for: %s' % self)
+ raise
- # Repair Stage
- try:
- self.runVerifyAndRepair()
- except (RuntimeError, OSError):
- logging.critical('Repair stage failed for: %s' % self.p2file)
- raise
+ self.updateFilesystemState()
- self.update_matches ()
+ # Repair Stage
+ try:
+ self.repair()
+ except (CalledProcessError, OSError):
+ logging.critical('Repair stage failed for: %s' % self)
+ raise
- # Deletion Stage
- try:
- self.runDelete()
- except (RuntimeError, OSError):
- logging.critical('Deletion stage failed for: %s' % self.p2file)
- raise
+ self.updateFilesystemState()
- logging.info ('Successfully completed: %s' % self.p2file)
+ # Deletion Stage
+ try:
+ self.delete ()
+ except (CalledProcessError, OSError):
+ logging.critical('Deletion stage failed for: %s' % self)
+ raise
+
+ logging.info ('Successfully completed: %s' % self)
+
+ ############################################################################