#!/usr/bin/env python3 import argparse from eryntools.dotfiles.system_parameters import CommandParameter, SystemParameters class HomebrewPrefix(CommandParameter): def __init__(self): super().__init__(['brew', '--prefix']) class XcodeSelectPrintPath(CommandParameter): def __init__(self): super().__init__(['xcode-select', '-p']) def main(argv): parser = argparse.ArgumentParser(prog=argv[0]) parser.add_argument('-f', '--file', type=argparse.FileType('r')) parser.add_argument('-o', '--output', type=argparse.FileType('w'), default=sys.stdout) arguments = parser.parse_args(argv[1:]) output_parameters = SystemParameters() if arguments.file: output_parameters.load_from_file(arguments.file) parameters = { 'homebrew_prefix': HomebrewPrefix(), 'xcode_path': XcodeSelectPrintPath(), } for name, parameter in parameters.items(): setattr(output_parameters, name, parameter) output_parameters.write_to_file(arguments.output) if __name__ == "__main__": import sys sys.exit(main(sys.argv) or 0)