class ScanSpdx: spdx_file = None scan_results = None def __init__(self, spdx_file): """Initializes class variables""" self.spdx_file = spdx_file def scan(self): """Scans an spdx file by making good use of spdx_scanner.py file; then outputs the results in xml format.""" spdx_file = self.spdx_file spdx_scan_result = local( 'python -s spdx_scanner.py -s 10571 {spdx_file}'.format( spdx_file=spdx_file), capture=True) self.scan_results = XMLBuilder('spdx_file') with self.scan_results.data: for line in spdx_scan_result.splitlines(): single_line = line.split(',') with self.scan_results.item: self.scan_results.file(val=single_line[0]) self.scan_results.license_info(val=single_line[1]) self.scan_results.license_concluded(val=single_line[2]) etree_node = ~self.scan_results # print(str(self.scan_results)) return str(self.scan_results)
def build_xml(spdx_scan_result): x = XMLBuilder('spdx_file') with x.data: for line in spdx_scan_result.splitlines(): single_line = line.split(',') with x.item: x.file(val=single_line[0]) x.license_info(val=single_line[1]) x.license_concluded(val=single_line[2]) etree_node = ~x return x
def checkstyle_xml(diags_set): def converted_severity(fauxpas_severity): # checkstyle severities: ignore, info, warning, error if (9 <= fauxpas_severity): return 'error' elif (5 <= fauxpas_severity): return 'warning' return 'info' x = XMLBuilder('checkstyle') diags_by_file = diags_set.grouped_diagnostics(by_property='file') for filepath, diags in diags_by_file.items(): with x.file(name=filepath or diags_set.pbxproj_path): for diag in diags: message = diag.info if 0 < len(message): message += ' ' message += '(%s - %s)' % (diag.ruleName, diag.ruleDescription) x.error(severity=converted_severity(diag.severity), source=diag.ruleShortName, message=message, line=str(diag.extent.start.line), column=str(diag.extent.start.utf16Column) ) return str(x)
def checkstyle_xml(diags_set): def converted_severity(fauxpas_severity): # checkstyle severities: ignore, info, warning, error if (9 <= fauxpas_severity): return 'error' elif (5 <= fauxpas_severity): return 'warning' return 'info' x = XMLBuilder('checkstyle') diags_by_file = diags_set.grouped_diagnostics(by_property='file') for filepath, diags in diags_by_file.items(): with x.file(name=filepath or diags_set.pbxproj_path): for diag in diags: message = diag.info if 0 < len(message): message += ' ' message += '(%s - %s)' % (diag.ruleName, diag.ruleDescription) x.error(severity=converted_severity(diag.severity), source=diag.ruleShortName, message=message, line=str(diag.extent.start.line), column=str(diag.extent.start.utf16Column)) return str(x)