1
Fork 0
This repository has been archived on 2023-03-26. You can view files and clone it, but cannot push or open issues or pull requests.
dotfile-automator/project/export/cli.py

33 lines
842 B
Python
Raw Normal View History

2015-12-05 22:35:18 +00:00
import click
2015-12-05 23:25:26 +00:00
from project.export import exports
from project.utils import repos
2015-12-05 23:25:26 +00:00
2015-12-05 22:35:18 +00:00
@click.command('export')
@click.argument('sections', nargs=-1)
def cli(sections):
2015-12-05 23:25:26 +00:00
functions = [f for k, f in exports.__dict__.items() if is_function(f)]
if sections: # If they don't want to export everything
2015-12-06 11:00:43 +00:00
temp_functions = functions
functions = []
for func in temp_functions:
if func.__name__ in sections:
functions.append(func)
2015-12-07 18:22:15 +00:00
errors = []
2015-12-05 23:25:26 +00:00
for func in functions:
2015-12-07 18:22:15 +00:00
try:
repos.go_to_data() # Reset data directory
func()
except Exception as e:
errors.append(e)
if errors:
print("Errors:")
for error in errors:
print(error)
2015-12-05 23:25:26 +00:00
return 0
def is_function(item):
return type(item).__name__ == 'function'