diff --git a/openstack_requirements/cmds/normalize_requirements.py b/openstack_requirements/cmds/normalize_requirements.py index dad7721285..dfac9419bb 100644 --- a/openstack_requirements/cmds/normalize_requirements.py +++ b/openstack_requirements/cmds/normalize_requirements.py @@ -16,21 +16,40 @@ from __future__ import print_function from __future__ import unicode_literals import argparse +import os.path + from openstack_requirements import requirement +def write_requirements_file(filename, reqs): + with open(filename + 'tmp', 'wt') as f: + f.write(reqs) + if os.path.exists(filename): + os.remove(filename) + os.rename(filename + 'tmp', filename) + + def main(): parser = argparse.ArgumentParser( description="Normalize requirements files") parser.add_argument('requirements', help='requirements file input') + parser.add_argument('-s', '--save', action='store_true', default=False, + help=('save normalized requirements ' + 'file instead of displaying it')) args = parser.parse_args() with open(args.requirements) as f: requirements = [line.strip() for line in f.readlines()] + normed_reqs = "" for line in requirements: req = requirement.parse_line(line) - print(req.to_line(comment_prefix=' ', - sort_specifiers=True), end='') + normed_req = req.to_line(comment_prefix=' ', sort_specifiers=True) + normed_reqs += normed_req + + if args.save: + write_requirements_file(args.requirements, normed_reqs) + else: + print(normed_reqs, end='') if __name__ == '__main__':