87815216 | #! /usr/bin/python3 |
2cbd5a80 | # # Copyright (C) 2015 vmware inc. # # Author: Harish Udaiya Kumar <hudaiyakumar@vmware.com> import sys import os |
8f5f4df4 | from argparse import ArgumentParser |
87815216 | from SpecData import SerializedSpecObjects |
94cdb4d4 | from jsonwrapper import JsonWrapper |
2cbd5a80 | DEFAULT_INPUT_TYPE = "pkg" DEFAULT_DISPLAY_OPTION = "tree" SPEC_FILE_DIR = "../../SPECS" LOG_FILE_DIR = "../../stage/LOGS" def main(): |
8f5f4df4 | usage = "Usage: %prog [options]" parser = ArgumentParser(usage) parser.add_argument("-i", "--input-type", dest="input_type", default=DEFAULT_INPUT_TYPE) parser.add_argument("-p", "--pkg", dest="pkg") parser.add_argument("-f", "--file", dest="json_file", default="packages_minimal.json") parser.add_argument("-d", "--disp", dest="display_option", default=DEFAULT_DISPLAY_OPTION) parser.add_argument("-s", "--spec-dir", dest="spec_dir", default=SPEC_FILE_DIR) parser.add_argument("-t", "--stage-dir", dest="stage_dir", default="../../stage") parser.add_argument("-a", "--input-data-dir", dest="input_data_dir", default="../../common/data/") options = parser.parse_args() |
4ddea019 | |
87815216 | if not options.input_data_dir.endswith('/'): |
4ddea019 | options.input_data_dir += '/' |
87815216 | try: specDeps = SerializedSpecObjects(options.input_data_dir, options.stage_dir) displayOption = options.display_option abs_path = os.path.abspath(__file__) dir_name = os.path.dirname(abs_path) os.chdir(dir_name) |
4ddea019 | |
87815216 | # To display/print package dependencies on console if(options.input_type == "pkg" or |
8f5f4df4 | options.input_type == "who-needs" or options.input_type == "who-needs-build"): |
87815216 | targetName = options.pkg specDeps.readSpecsAndConvertToSerializableObjects(options.spec_dir, options.input_type, targetName, displayOption) |
8f5f4df4 | elif options.input_type == "json": |
87815216 | # Generate the expanded package dependencies json file based on package_list_file json_wrapper_option_list = JsonWrapper(options.json_file) option_list_json = json_wrapper_option_list.read() options_sorted = option_list_json.items() for install_option in options_sorted: if displayOption == "tree" and install_option[1]["title"] == "ISO Packages": continue specDeps.readSpecsAndConvertToSerializableObjects( options.spec_dir, options.input_type, install_option[1]["file"], displayOption) |
8f5f4df4 | except Exception as _: |
87815216 | sys.stderr.write("Failed to generate dependency lists from spec files\n") sys.exit(1) |
4ddea019 | |
87815216 | sys.stderr.write("Successfully generated dependency lists from spec files\n") |
4ddea019 | sys.exit(0) |
2cbd5a80 | |
87815216 | if __name__ == "__main__": |
2cbd5a80 | main() |