diff --git a/port-jobs/COMMENTS.py b/port-jobs/COMMENTS.py index a5969bd..1890576 100755 --- a/port-jobs/COMMENTS.py +++ b/port-jobs/COMMENTS.py @@ -1,23 +1,24 @@ #!/usr/bin/env python3 from os import listdir -import re +from re import match as rematch from sys import argv # read arguments arguments = argv[1:] -# define regular expression depending on arguments -if len(arguments) > 0 and arguments[0] == 'ALL': - regex = re.compile(r'^\s*#.*$\n?', re.MULTILINE) -else: - regex = re.compile(r'^\s*# PORT.*$\n?', re.MULTILINE) - +# loop through all Python files in the working directory for filename in listdir('working'): if filename.endswith('.py'): filepath = 'working/' + filename # read input file - text = open(filepath, 'r').read() - # run the defined regular expression - new_text = re.sub(regex, '', text) - # write updated text - open(filepath, 'w').write(new_text) + with open(filepath, 'r') as file: + new_file = [] + for line in file: + # determine whether to remove all or only PORT comments + if len(arguments) > 0 and arguments[0] == 'ALL': + if not rematch(r'^\s*#', line): + new_file.append(line) + elif not rematch(r'^\s*# PORT', line): + new_file.append(line) + # write the updated file contents + open(filepath, 'w').writelines(new_file)