Add include and exclude
This commit is contained in:
parent
c53595cbfe
commit
155c443167
@ -5,6 +5,16 @@ import argparse
|
|||||||
from decouple import config
|
from decouple import config
|
||||||
from python_on_whales import DockerClient
|
from python_on_whales import DockerClient
|
||||||
|
|
||||||
|
def include_exclude_check(s, args):
|
||||||
|
if args.include == None and args.exclude == None:
|
||||||
|
return True
|
||||||
|
if args.include != None:
|
||||||
|
include_list = args.include.split(",")
|
||||||
|
return s in include_list
|
||||||
|
if args.exclude != None:
|
||||||
|
exclude_list = args.exclude.split(",")
|
||||||
|
return s not in exclude_list
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(
|
parser = argparse.ArgumentParser(
|
||||||
description="deploy the complete stack"
|
description="deploy the complete stack"
|
||||||
)
|
)
|
||||||
@ -12,8 +22,9 @@ parser.add_argument("--verbose", action="store_true", help="increase output verb
|
|||||||
parser.add_argument("--quiet", action="store_true", help="don\'t print informational output")
|
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("--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("--dry-run", action="store_true", help="don\'t do anything, just print the commands that would be executed")
|
||||||
parser.add_argument("--exclude", type=str, help="don\'t start these components")
|
group = parser.add_mutually_exclusive_group()
|
||||||
parser.add_argument("--include", type=str, help="only start these components")
|
group.add_argument("--exclude", type=str, help="don\'t start these components")
|
||||||
|
group.add_argument("--include", type=str, help="only start these components")
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
@ -32,10 +43,15 @@ if verbose:
|
|||||||
|
|
||||||
compose_files = []
|
compose_files = []
|
||||||
for cluster in clusters:
|
for cluster in clusters:
|
||||||
compose_file_name = os.path.join("compose", f"docker-compose-{cluster}.yml")
|
if include_exclude_check(cluster, args):
|
||||||
compose_files.append(compose_file_name)
|
compose_file_name = os.path.join("compose", f"docker-compose-{cluster}.yml")
|
||||||
|
compose_files.append(compose_file_name)
|
||||||
|
else:
|
||||||
|
if not quiet:
|
||||||
|
print(f"Excluding: {cluster}")
|
||||||
|
|
||||||
print(f"files: {compose_files}")
|
if verbose:
|
||||||
|
print(f"files: {compose_files}")
|
||||||
|
|
||||||
# See: https://gabrieldemarmiesse.github.io/python-on-whales/sub-commands/compose/
|
# See: https://gabrieldemarmiesse.github.io/python-on-whales/sub-commands/compose/
|
||||||
docker = DockerClient(compose_files=compose_files)
|
docker = DockerClient(compose_files=compose_files)
|
||||||
|
Loading…
Reference in New Issue
Block a user