Exemple #1
0
 def saveHomeOption(self):
     # If saveHome == True --> Get 'savePath' Path
     savePath = self.getSavePath()
     if not FileUtils.exists(savePath):  # Check Existence
         FileUtils.createDirectory(savePath)
     if FileUtils.exists(
             savePath) and not FileUtils.isDir(savePath):  # Check Status
         self.output.error(
             "NOT Available ! {} is a File, Should be a Directory.\nPlease Check Again."
             .format(savePath))
         exit(1)
     if not FileUtils.canWrite(savePath):  # Check Writability
         self.output.error(
             "Directory {} is Not Writable.\nPlease Check Again.".format(
                 savePath))
         exit(1)
     return savePath
Exemple #2
0
    def setupReports(self, requester):
        if self.arguments.autoSave:  # Default True
            # Auto Save Format Option
            if FileUtils.canWrite(self.directoryPath):
                report = None
                if self.arguments.autoSaveFormat == 'simple':
                    report = SimpleReport(requester.host, requester.port,
                                          requester.protocol,
                                          requester.basePath, self.reportsPath)
                if self.arguments.autoSaveFormat == 'json':
                    report = JSONReport(requester.host, requester.port,
                                        requester.protocol, requester.basePath,
                                        self.reportsPath)
                else:  # PlainTextReport
                    report = PlainTextReport(
                        requester.host, requester.port, requester.protocol,
                        requester.basePath, self.reportsPath)
                self.reportController.addReport(report)
            else:
                self.output.error("Cannot Write Reports to {}".format(
                    self.directoryPath))
                sys.exit(1)

        # Save Format Option
        if self.arguments.simpleOutputFile is not None:  # Simple Format
            self.reportController.addReport(
                SimpleReport(requester.host, requester.port,
                             requester.protocol, requester.basePath,
                             self.arguments.simpleOutputFile))
        if self.arguments.plainTextOutputFile is not None:  # Plain Text Format
            self.reportController.addReport(
                PlainTextReport(requester.host, requester.port,
                                requester.protocol, requester.basePath,
                                self.arguments.plainTextOutputFile))
        if self.arguments.jsonOutputFile is not None:  # JSON Format
            self.reportController.addReport(
                JSONReport(requester.host, requester.port, requester.protocol,
                           requester.basePath, self.arguments.jsonOutputFile))
Exemple #3
0
    def setupBatchReports(self):
        self.batch = True
        self.batchSession = "Batch-{0}".format(
            time.strftime('%y-%m-%d_%H-%M-%S'))
        self.batchDirectoryPath = FileUtils.createPath(
            self.savePath, "reports", self.batchSession)

        if not FileUtils.exists(self.batchDirectoryPath):
            FileUtils.createDirectory(self.batchDirectoryPath)
            if not FileUtils.exists(self.batchDirectoryPath):
                self.output.error("Cannot Create Batch Folder {}".format(
                    self.batchDirectoryPath))
                sys.exit(1)

        if FileUtils.canWrite(self.batchDirectoryPath):
            FileUtils.createDirectory(self.batchDirectoryPath)
            targetsFile = FileUtils.createPath(self.batchDirectoryPath,
                                               "Target-URL-List.txt")
            FileUtils.writeLines(targetsFile, self.arguments.urlList)
        else:
            self.output.error("Cannnot Write Batch Folder {}.".format(
                self.batchDirectoryPath))
            sys.exit(1)
 def canWrite(self):
     return FileUtils.canWrite(self.path)