示例#1
0
    def preProcess(self):
        log = logging.getLogger(self.logName)
        log.debug(">> preprocess")
        if OptionHandler.getOptionActive("filePattern"):
            log.debug("Creating filePattern reg ex.")
            self.fileRegEx = re.compile(
                OptionHandler.getOptionArg("filePattern"))

        if OptionHandler.getOptionActive("diffFile"):
            diffFileName = OptionHandler.getOptionArg("diffFile")
            log.debug("Opening diff file \"%s\"." % diffFileName)
            self.diffFile = open(diffFileName, "w+")

        if OptionHandler.getOptionActive("operations"):
            log.debug("Populating operation bundle.")

            # must split -o "Op1:Op2:Op3" at the ":" and -o may have appeared
            # more than once on the command line
            opNameArgList = OptionHandler.getOptionArg("operations")
            for opNameArg in opNameArgList:
                opNameList = opNameArg.split(":")

                for opName in opNameList:
                    log.debug("adding operation \"%s\"." % opName)
                    self.opBundle.addOp(opName)
        log.debug("<< preprocess")
 def preProcess(self):
     log = logging.getLogger(self.logName);
     log.debug(">> preprocess");
     if OptionHandler.getOptionActive("filePattern"):
         log.debug("Creating filePattern reg ex.");
         self.fileRegEx = re.compile(OptionHandler.getOptionArg("filePattern"));
         
     if OptionHandler.getOptionActive("diffFile"):
         diffFileName = OptionHandler.getOptionArg("diffFile");
         log.debug("Opening diff file \"%s\"." % diffFileName);
         self.diffFile = open(diffFileName, "w+");
     
     if OptionHandler.getOptionActive("operations"):
         log.debug("Populating operation bundle.");
         
         # must split -o "Op1:Op2:Op3" at the ":" and -o may have appeared
         # more than once on the command line
         opNameArgList = OptionHandler.getOptionArg("operations");
         for opNameArg in opNameArgList:
             opNameList = opNameArg.split(":");
             
             for opName in opNameList:
                 log.debug("adding operation \"%s\"." % opName);
                 self.opBundle.addOp(opName);
     log.debug("<< preprocess");
示例#3
0
    def processFile(self, filePath, fileName):
        log = logging.getLogger(self.logName)
        log.debug(">> processFile")

        self.currFilePath = filePath
        self.currFileName = fileName
        fullFilePath = os.path.join(filePath, fileName)

        log.info("  File: \"%s\"." % fullFilePath)

        fileLastMTime = time.ctime(os.stat(fullFilePath).st_mtime)
        fileNewMTime = time.ctime()

        if not self.testFileRegEx(filePath, fileName):
            log.info("File ignored - pattern does not match.")
            log.debug("<< processing file.")
            return

        if not self.testFileAccess(filePath, fileName):
            log.warning("File ignored - insufficient file permissions.")
            log.debug("<< processing file.")
            return

        log.info("reading file \"%s\"." % fullFilePath)
        currFile = open(fullFilePath, "r")
        self.currFileContent = currFile.read()
        self.currFileOrigContent = self.currFileContent[:]
        currFile.close()

        log.debug("applying bundle")
        self.opBundle.applyBundle(self)

        udiff = difflib.unified_diff(self.currFileOrigContent.split("\n"),
                                     self.currFileContent.split("\n"),
                                     fullFilePath,
                                     fullFilePath,
                                     fileLastMTime,
                                     fileNewMTime,
                                     lineterm="")

        if OptionHandler.getOptionActive("diffFile"):
            for line in udiff:
                log.info(line)
                self.diffFile.write(line)
                self.diffFile.write("\n")
        else:
            for line in udiff:
                log.info(line)

        if OptionHandler.getOptionActive("noOp"):
            log.info("Changes NOT written.")
            log.debug("<< processing file.")
            return

        log.info("writing modified file \"%s\"." % fullFilePath)
        currFile = open(fullFilePath, "w")
        currFile.write(self.currFileContent)
        currFile.flush()
        currFile.close()
        log.debug("<< processing file.")
 def processFile(self, filePath, fileName):
     log = logging.getLogger(self.logName);
     log.debug(">> processFile");
     
     self.currFilePath = filePath;
     self.currFileName = fileName;
     fullFilePath = os.path.join(filePath, fileName);
     
     log.info("  File: \"%s\"." % fullFilePath);
     
     fileLastMTime = time.ctime(os.stat(fullFilePath).st_mtime);
     fileNewMTime = time.ctime();
     
     if not self.testFileRegEx(filePath, fileName):
         log.info("File ignored - pattern does not match.")
         log.debug("<< processing file.");
         return;
      
     if not self.testFileAccess(filePath, fileName):
         log.warning("File ignored - insufficient file permissions.");
         log.debug("<< processing file.");
         return;
     
     log.info("reading file \"%s\"." % fullFilePath);
     currFile = open(fullFilePath, "r");
     self.currFileContent = currFile.read();
     self.currFileOrigContent = self.currFileContent[:];
     currFile.close();
     
     log.debug("applying bundle");
     self.opBundle.applyBundle(self);
     
     udiff = difflib.unified_diff(self.currFileOrigContent.split("\n"),
                                  self.currFileContent.split("\n"),
                                  fullFilePath, fullFilePath,
                                  fileLastMTime, fileNewMTime, lineterm="");
                                  
     if OptionHandler.getOptionActive("diffFile"):
         for line in udiff:
             log.info(line);
             self.diffFile.write(line);
             self.diffFile.write("\n");
     else:
         for line in udiff:
             log.info(line);
             
     if OptionHandler.getOptionActive("noOp"):
         log.info("Changes NOT written.");
         log.debug("<< processing file.");
         return;
     
     log.info("writing modified file \"%s\"." % fullFilePath);
     currFile = open(fullFilePath, "w");
     currFile.write(self.currFileContent);
     currFile.flush();
     currFile.close();
     log.debug("<< processing file.");
 def postProcess(self):
     log = logging.getLogger(self.logName);
     log.debug(">> postprocess");
     if OptionHandler.getOptionActive("diffFile"):
         log.debug("Closing diff file \"%s\"." % self.diffFile.name);
         self.diffFile.flush();
         self.diffFile.close();
     log.debug("<< postprocess");
示例#6
0
 def postProcess(self):
     log = logging.getLogger(self.logName)
     log.debug(">> postprocess")
     if OptionHandler.getOptionActive("diffFile"):
         log.debug("Closing diff file \"%s\"." % self.diffFile.name)
         self.diffFile.flush()
         self.diffFile.close()
     log.debug("<< postprocess")
 def processFiles(self):
     log = logging.getLogger(self.logName);
     log.debug(">> process");
     
     for path in OptionHandler.getArgList()[1:]:
         log.info("path: \"%s\"." % path);
         if not OptionHandler.getOptionActive("followSymlink") and os.path.islink(path):
             log.info("skipping path - is symlink and followSymlink is off.");
             continue;
         
         if os.path.isdir(path):
             for root, dirs, files in os.walk(path):
                 if not OptionHandler.getOptionActive("followSymlink"):
                     filter(lambda d: not os.path.islink(d), dirs);
                     filter(lambda f: not os.path.islink(f), files);
                 
                 for file in files:
                     self.processFile(root, file);
                 
         elif os.path.isfile(path):
             self.processFile("./", path);
     log.debug("<< process");
 def __init__(self):
     self.fileRegEx = None;
     self.diffFile = None;
     self.opBundle = OperationBundle();
     
     self.currFileName = None;
     self.currFilePath = None;
     self.currFileContent = None;
     self.currFileOrigContent = None;
     
     self.logName = "ConversionDriver";
     
     consoleLogLevel = logging.ERROR;
     
     # setup console log
     if OptionHandler.getOptionActive("verbose"):
         if OptionHandler.getOptionArg("verbose") == 1:
             consoleLogLevel = logging.WARNING;
         elif OptionHandler.getOptionArg("verbose") == 2:
             consoleLogLevel = logging.INFO;
         elif OptionHandler.getOptionArg("verbose") >= 3:
             consoleLogLevel = logging.DEBUG;
             
     logging.basicConfig(level = consoleLogLevel);
     
     # setup log file
     if OptionHandler.getOptionActive("logFile"):
         fileLogName = OptionHandler.getOptionArg("logFile");
         fileLogHandler = logging.FileHandler(fileLogName, "w");
         fileLogFormatter = logging.Formatter(
             "%(asctime)s %(name)-12s %(levelname)-8s %(message)s");
         
         fileLogHandler.setLevel(logging.DEBUG);
         fileLogHandler.setFormatter(fileLogFormatter);
         
         logging.getLogger("").addHandler(fileLogHandler);
示例#9
0
    def processFiles(self):
        log = logging.getLogger(self.logName)
        log.debug(">> process")

        for path in OptionHandler.getArgList()[1:]:
            log.info("path: \"%s\"." % path)
            if not OptionHandler.getOptionActive(
                    "followSymlink") and os.path.islink(path):
                log.info(
                    "skipping path - is symlink and followSymlink is off.")
                continue

            if os.path.isdir(path):
                for root, dirs, files in os.walk(path):
                    if not OptionHandler.getOptionActive("followSymlink"):
                        filter(lambda d: not os.path.islink(d), dirs)
                        filter(lambda f: not os.path.islink(f), files)

                    for file in files:
                        self.processFile(root, file)

            elif os.path.isfile(path):
                self.processFile("./", path)
        log.debug("<< process")
示例#10
0
    def __init__(self):
        self.fileRegEx = None
        self.diffFile = None
        self.opBundle = OperationBundle()

        self.currFileName = None
        self.currFilePath = None
        self.currFileContent = None
        self.currFileOrigContent = None

        self.logName = "ConversionDriver"

        consoleLogLevel = logging.ERROR

        # setup console log
        if OptionHandler.getOptionActive("verbose"):
            if OptionHandler.getOptionArg("verbose") == 1:
                consoleLogLevel = logging.WARNING
            elif OptionHandler.getOptionArg("verbose") == 2:
                consoleLogLevel = logging.INFO
            elif OptionHandler.getOptionArg("verbose") >= 3:
                consoleLogLevel = logging.DEBUG

        logging.basicConfig(level=consoleLogLevel)

        # setup log file
        if OptionHandler.getOptionActive("logFile"):
            fileLogName = OptionHandler.getOptionArg("logFile")
            fileLogHandler = logging.FileHandler(fileLogName, "w")
            fileLogFormatter = logging.Formatter(
                "%(asctime)s %(name)-12s %(levelname)-8s %(message)s")

            fileLogHandler.setLevel(logging.DEBUG)
            fileLogHandler.setFormatter(fileLogFormatter)

            logging.getLogger("").addHandler(fileLogHandler)