From 703ab7b0635cea76c294eaf91cb1b050dd71ee71 Mon Sep 17 00:00:00 2001 From: Iceflower Date: Wed, 15 Nov 2017 16:46:57 +0100 Subject: [PATCH 1/2] Fix generate_filename --- src/codacy/reporter.py | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/src/codacy/reporter.py b/src/codacy/reporter.py index 58bbe49..bfaa552 100755 --- a/src/codacy/reporter.py +++ b/src/codacy/reporter.py @@ -46,16 +46,6 @@ def get_git_directory(): return subprocess.check_output(['git', 'rev-parse', '--show-toplevel']).decode("utf-8").strip() -def file_exists(rootdir, filename): - for root, subFolders, files in os.walk(rootdir): - if filename in files: - return True - else: - for subFolder in subFolders: - return file_exists(os.path.join(rootdir, subFolder), filename) - return False - - def generate_filename(sources, filename, git_directory): def strip_prefix(line, prefix): if line.startswith(prefix): @@ -67,9 +57,10 @@ def strip_prefix(line, prefix): git_directory = get_git_directory() for source in sources: - if file_exists(source, filename): + if os.path.isfile(source + "/" + filename): return strip_prefix(source, git_directory).strip("/") + "/" + filename.strip("/") + logging.debug("File not found: " + filename) return filename @@ -127,6 +118,9 @@ def percent(s): } sources = [x.firstChild.nodeValue for x in report_xml.getElementsByTagName('source')] + # replace windows style seperator with linux style seperator + for i in range(len(sources)): + sources[i] = sources[i].replace("\\", "/") classes = report_xml.getElementsByTagName('class') total_lines = 0 for cls in classes: From 5bba7e09774ae91edfe2965f21acc88f6eabd5ed Mon Sep 17 00:00:00 2001 From: Iceflower Date: Wed, 15 Nov 2017 17:01:11 +0100 Subject: [PATCH 2/2] Move get_git_directory to the beginning and be sure that git_directory has linux seperator style too --- src/codacy/reporter.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/codacy/reporter.py b/src/codacy/reporter.py index bfaa552..75d7654 100755 --- a/src/codacy/reporter.py +++ b/src/codacy/reporter.py @@ -53,9 +53,6 @@ def strip_prefix(line, prefix): else: return line - if not git_directory: - git_directory = get_git_directory() - for source in sources: if os.path.isfile(source + "/" + filename): return strip_prefix(source, git_directory).strip("/") + "/" + filename.strip("/") @@ -196,6 +193,12 @@ def run(): if not args.report: args.report.append(DEFAULT_REPORT_FILE) + if args.directory: + git_directory = args.directory + else: + git_directory = get_git_directory() + git_directory.replace("\\", "/") + # Explictly check ALL files before parsing any for rfile in args.report: if not os.path.isfile(rfile): @@ -205,7 +208,7 @@ def run(): reports = [] for rfile in args.report: logging.info("Parsing report file %s...", rfile) - reports.append(parse_report_file(rfile, args.directory)) + reports.append(parse_report_file(rfile, git_directory)) report = merge_and_round_reports(reports)