Initial implementation of stack
Former-commit-id: 1d7128c6e1daf97c09b68b505a7a865333261ed0
This commit is contained in:
parent
fc3bcdef74
commit
2b15eff104
@ -23,6 +23,7 @@ import git
|
||||
from tqdm import tqdm
|
||||
import click
|
||||
import importlib.resources
|
||||
import yaml
|
||||
from .util import include_exclude_check
|
||||
|
||||
|
||||
@ -64,9 +65,11 @@ def command(ctx, include, exclude, git_ssh, check_only, pull, branches_file):
|
||||
quiet = ctx.obj.quiet
|
||||
verbose = ctx.obj.verbose
|
||||
dry_run = ctx.obj.dry_run
|
||||
stack = ctx.obj.stack
|
||||
|
||||
branches = []
|
||||
|
||||
# TODO: branches file needs to be re-worked in the context of stacks
|
||||
if branches_file:
|
||||
if verbose:
|
||||
print(f"loading branches from: {branches_file}")
|
||||
@ -96,8 +99,16 @@ def command(ctx, include, exclude, git_ssh, check_only, pull, branches_file):
|
||||
with importlib.resources.open_text(data, "repository-list.txt") as repository_list_file:
|
||||
all_repos = repository_list_file.read().splitlines()
|
||||
|
||||
if stack:
|
||||
resource_data_dir = importlib.resources.files(data)
|
||||
with importlib.resources.as_file(resource_data_dir.joinpath(f"stacks/{stack}/stack.yml")) as stack_file_path:
|
||||
stack_config = yaml.safe_load(open(stack_file_path, "r"))
|
||||
print(f"stack is: {stack_config}")
|
||||
|
||||
if verbose:
|
||||
print(f"Repos: {all_repos}")
|
||||
if stack:
|
||||
print(f"Stack: {stack}")
|
||||
|
||||
repos = []
|
||||
for repo in all_repos:
|
||||
|
10
cli.py
10
cli.py
@ -24,8 +24,11 @@ from app import version
|
||||
CONTEXT_SETTINGS = dict(help_option_names=['-h', '--help'])
|
||||
|
||||
|
||||
# TODO: this seems kind of weird and heavy on boilerplate -- check it is
|
||||
# the best Python can do for us.
|
||||
class Options(object):
|
||||
def __init__(self, quiet, verbose, dry_run, local_stack, debug):
|
||||
def __init__(self, stack, quiet, verbose, dry_run, local_stack, debug):
|
||||
self.stack = stack
|
||||
self.quiet = quiet
|
||||
self.verbose = verbose
|
||||
self.dry_run = dry_run
|
||||
@ -34,6 +37,7 @@ class Options(object):
|
||||
|
||||
|
||||
@click.group(context_settings=CONTEXT_SETTINGS)
|
||||
@click.option('--stack', help="specify a stack to build/deploy")
|
||||
@click.option('--quiet', is_flag=True, default=False)
|
||||
@click.option('--verbose', is_flag=True, default=False)
|
||||
@click.option('--dry-run', is_flag=True, default=False)
|
||||
@ -41,9 +45,9 @@ class Options(object):
|
||||
@click.option('--debug', is_flag=True, default=False)
|
||||
# See: https://click.palletsprojects.com/en/8.1.x/complex/#building-a-git-clone
|
||||
@click.pass_context
|
||||
def cli(ctx, quiet, verbose, dry_run, local_stack, debug):
|
||||
def cli(ctx, stack, quiet, verbose, dry_run, local_stack, debug):
|
||||
"""Laconic Stack Orchestrator"""
|
||||
ctx.obj = Options(quiet, verbose, dry_run, local_stack, debug)
|
||||
ctx.obj = Options(stack, quiet, verbose, dry_run, local_stack, debug)
|
||||
|
||||
|
||||
cli.add_command(setup_repositories.command, "setup-repositories")
|
||||
|
@ -3,3 +3,4 @@ GitPython>=3.1.27
|
||||
tqdm>=4.64.0
|
||||
python-on-whales>=0.52.0
|
||||
click>=8.1.3
|
||||
pyyaml>=6.0
|
||||
|
Loading…
Reference in New Issue
Block a user