Skip to content
This repository was archived by the owner on Feb 19, 2020. It is now read-only.

Commit b33e250

Browse files
authored
Merge pull request #36 from IceflowRE/master
Fix generate_filename
2 parents b294d55 + 5bba7e0 commit b33e250

File tree

1 file changed

+12
-15
lines changed

1 file changed

+12
-15
lines changed

src/codacy/reporter.py

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -46,30 +46,18 @@ def get_git_directory():
4646
return subprocess.check_output(['git', 'rev-parse', '--show-toplevel']).decode("utf-8").strip()
4747

4848

49-
def file_exists(rootdir, filename):
50-
for root, subFolders, files in os.walk(rootdir):
51-
if filename in files:
52-
return True
53-
else:
54-
for subFolder in subFolders:
55-
return file_exists(os.path.join(rootdir, subFolder), filename)
56-
return False
57-
58-
5949
def generate_filename(sources, filename, git_directory):
6050
def strip_prefix(line, prefix):
6151
if line.startswith(prefix):
6252
return line[len(prefix):]
6353
else:
6454
return line
6555

66-
if not git_directory:
67-
git_directory = get_git_directory()
68-
6956
for source in sources:
70-
if file_exists(source, filename):
57+
if os.path.isfile(source + "/" + filename):
7158
return strip_prefix(source, git_directory).strip("/") + "/" + filename.strip("/")
7259

60+
logging.debug("File not found: " + filename)
7361
return filename
7462

7563

@@ -127,6 +115,9 @@ def percent(s):
127115
}
128116

129117
sources = [x.firstChild.nodeValue for x in report_xml.getElementsByTagName('source')]
118+
# replace windows style seperator with linux style seperator
119+
for i in range(len(sources)):
120+
sources[i] = sources[i].replace("\\", "/")
130121
classes = report_xml.getElementsByTagName('class')
131122
total_lines = 0
132123
for cls in classes:
@@ -202,6 +193,12 @@ def run():
202193
if not args.report:
203194
args.report.append(DEFAULT_REPORT_FILE)
204195

196+
if args.directory:
197+
git_directory = args.directory
198+
else:
199+
git_directory = get_git_directory()
200+
git_directory.replace("\\", "/")
201+
205202
# Explictly check ALL files before parsing any
206203
for rfile in args.report:
207204
if not os.path.isfile(rfile):
@@ -211,7 +208,7 @@ def run():
211208
reports = []
212209
for rfile in args.report:
213210
logging.info("Parsing report file %s...", rfile)
214-
reports.append(parse_report_file(rfile, args.directory))
211+
reports.append(parse_report_file(rfile, git_directory))
215212

216213
report = merge_and_round_reports(reports)
217214

0 commit comments

Comments
 (0)