Added export commands
This commit is contained in:
parent
b490f8f568
commit
a3afd13f4f
4 changed files with 44 additions and 10 deletions
|
@ -17,14 +17,11 @@ class DotFileCLI(click.MultiCommand):
|
||||||
ns = {}
|
ns = {}
|
||||||
if name not in self.list_commands(ctx):
|
if name not in self.list_commands(ctx):
|
||||||
return
|
return
|
||||||
try:
|
|
||||||
fn = os.path.join(os.path.dirname(__file__), name + '/cli.py')
|
fn = os.path.join(os.path.dirname(__file__), name + '/cli.py')
|
||||||
with open(fn) as f:
|
with open(fn) as f:
|
||||||
code = compile(f.read(), fn, 'exec')
|
code = compile(f.read(), fn, 'exec')
|
||||||
eval(code, ns, ns)
|
eval(code, ns, ns)
|
||||||
return ns['cli']
|
return ns['cli']
|
||||||
except:
|
|
||||||
return
|
|
||||||
|
|
||||||
cli = DotFileCLI(help='This tool\'s subcommands are loaded from a plugin folder dynamically.')
|
cli = DotFileCLI(help='This tool\'s subcommands are loaded from a plugin folder dynamically.')
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,24 @@
|
||||||
import click
|
import click
|
||||||
from project.utils import config
|
from project.export import exports
|
||||||
|
|
||||||
|
|
||||||
@click.command('export')
|
@click.command('export')
|
||||||
@click.argument('sections', nargs=-1)
|
@click.argument('sections', nargs=-1)
|
||||||
def cli(sections):
|
def cli(sections):
|
||||||
pass
|
functions = [f for k, f in exports.__dict__.items() if is_function(f)]
|
||||||
|
print("got all functions", functions)
|
||||||
|
if sections: # If they don't want to export everything
|
||||||
|
print("YOu specified sections")
|
||||||
|
for func in functions:
|
||||||
|
if func.__name__ not in sections:
|
||||||
|
print("{} not in {}".format(func.__name__, sections))
|
||||||
|
functions.remove(func)
|
||||||
|
print("Calling functions", functions)
|
||||||
|
for func in functions:
|
||||||
|
print("Calling", func.__name__)
|
||||||
|
func()
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
def is_function(item):
|
||||||
|
return type(item).__name__ == 'function'
|
||||||
|
|
14
project/export/exports.py
Normal file
14
project/export/exports.py
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
def atom():
|
||||||
|
print("atom")
|
||||||
|
|
||||||
|
|
||||||
|
def thing():
|
||||||
|
print("thing")
|
||||||
|
|
||||||
|
|
||||||
|
def stuff():
|
||||||
|
print("stuff")
|
||||||
|
|
||||||
|
|
||||||
|
def foo():
|
||||||
|
print("foo")
|
|
@ -13,3 +13,9 @@ def clone_private_data():
|
||||||
exit_code = os.system("git clone -b master --single-branch {} {}"
|
exit_code = os.system("git clone -b master --single-branch {} {}"
|
||||||
.format(config.get('private_repo'), constants.PRIVATE_DATA_DIR))
|
.format(config.get('private_repo'), constants.PRIVATE_DATA_DIR))
|
||||||
return exit_code
|
return exit_code
|
||||||
|
|
||||||
|
|
||||||
|
def has_data(data):
|
||||||
|
public_path = os.path.join(constants.PUBLIC_DATA_DIR, data)
|
||||||
|
private_path = os.path.join(constants.PRIVATE_DATA_DIR, data)
|
||||||
|
return os.path.isdir(public_path) or os.path.isdir(private_path)
|
||||||
|
|
Reference in a new issue