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
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))
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)