42 lines
1.1 KiB
Text
42 lines
1.1 KiB
Text
|
#!/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)
|