forked from cerc-io/stack-orchestrator
More click code
This commit is contained in:
parent
c9d42886d5
commit
2fadafbd87
@ -41,23 +41,21 @@ def is_git_repo(path):
|
||||
except git.exc.InvalidGitRepositoryError:
|
||||
return False
|
||||
|
||||
parser = argparse.ArgumentParser(
|
||||
description="git clone the set of repositories required to build the complete system from source",
|
||||
epilog="Config provided either in .env or settings.ini or env vars: CERC_REPO_BASE_DIR (defaults to ~/cerc)"
|
||||
)
|
||||
parser.add_argument("--verbose", action="store_true", help="increase output verbosity")
|
||||
parser.add_argument("--quiet", action="store_true", help="don\'t print informational output")
|
||||
parser.add_argument("--check-only", action="store_true", help="looks at what\'s already there and checks if it looks good")
|
||||
parser.add_argument("--dry-run", action="store_true", help="don\'t do anything, just print the commands that would be executed")
|
||||
parser.add_argument("--pull", action="store_true", help="pull from remote in already existing repositories")
|
||||
|
||||
args = parser.parse_args()
|
||||
# TODO: find a place for this in the context of click
|
||||
#parser = argparse.ArgumentParser(
|
||||
# epilog="Config provided either in .env or settings.ini or env vars: CERC_REPO_BASE_DIR (defaults to ~/cerc)"
|
||||
# )
|
||||
|
||||
@click.command()
|
||||
def command():
|
||||
@click.option('--check-only', default=False)
|
||||
@click.option('--pull', default=False)
|
||||
@click.pass_context
|
||||
def command(ctx, check_only, pull):
|
||||
'''git clone the set of repositories required to build the complete system from source'''
|
||||
|
||||
verbose = args.verbose
|
||||
quiet = args.quiet
|
||||
quiet = ctx.obj.quiet
|
||||
verbose = ctx.obj.verbose
|
||||
dry_run = ctx.obj.verbose
|
||||
|
||||
dev_root_path = os.path.expanduser(config("DEV_ROOT", default="~/cerc"))
|
||||
|
||||
@ -89,10 +87,10 @@ def command():
|
||||
print(f'Error: {full_filesystem_repo_path} does not contain a valid git repository')
|
||||
sys.exit(1)
|
||||
else:
|
||||
if args.pull:
|
||||
if pull:
|
||||
if verbose:
|
||||
print(f'Running git pull for {full_filesystem_repo_path}')
|
||||
if not args.check_only:
|
||||
if not check_only:
|
||||
repo = git.Repo(full_filesystem_repo_path)
|
||||
origin = repo.remotes.origin
|
||||
origin.pull(progress = None if quiet else GitProgress())
|
||||
@ -102,7 +100,7 @@ def command():
|
||||
# Clone
|
||||
if verbose:
|
||||
print(f'Running git clone for {full_github_repo_path} into {full_filesystem_repo_path}')
|
||||
if not args.check_only:
|
||||
if not dry_run:
|
||||
git.Repo.clone_from(full_github_repo_path, full_filesystem_repo_path,
|
||||
progress = None if quiet else GitProgress())
|
||||
else:
|
||||
|
15
cli.py
15
cli.py
@ -21,14 +21,21 @@ from app import deploy_system
|
||||
|
||||
CONTEXT_SETTINGS = dict(help_option_names=['-h', '--help'])
|
||||
|
||||
class Options(object):
|
||||
def __init__(self, quiet, verbose, dry_run):
|
||||
self.quiet = quiet
|
||||
self.verbose = verbose
|
||||
self.dry_run = dry_run
|
||||
|
||||
@click.group(context_settings=CONTEXT_SETTINGS)
|
||||
@click.option('--quiet', default=False)
|
||||
@click.option('--verbose', default=False)
|
||||
@click.option('--dry-run', default=False)
|
||||
def cli():
|
||||
"""Example script."""
|
||||
print("Yo!")
|
||||
click.echo('Hello World!')
|
||||
# See: https://click.palletsprojects.com/en/8.1.x/complex/#building-a-git-clone
|
||||
@click.pass_context
|
||||
def cli(ctx, quiet, verbose, dry_run):
|
||||
"""Laconic Stack Orchestrator"""
|
||||
ctx.obj = Options(quiet, verbose, dry_run)
|
||||
|
||||
cli.add_command(setup_repositories.command,"setup-repositories")
|
||||
cli.add_command(build_containers.command,"build-containers")
|
||||
|
Loading…
Reference in New Issue
Block a user