- Add a system_parameters module to eryntools that implements some basic types and can write a cache to a file. - Add a system-parameters Python script that builds the cache. - Add init_system_parameters to zsh that exports an environment variable that points to the parameters file - Add an eryn.system-parameters.plist LaunchAgent file for running the script at regular intervals
		
			
				
	
	
		
			41 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
#!/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)
 |