From 73fb1c622c0351b08129b414c5232a8a933d9842 Mon Sep 17 00:00:00 2001 From: Abdulwasiu Apalowo Date: Sat, 7 Jan 2023 17:39:37 +0100 Subject: lcitool container: Add "engines" subcommand This adds the "engines" container subcommand which is used to list all the available and usable engines. It allows users to decide on the engine to select when spinning up containers and/or building images. Signed-off-by: Abdulwasiu Apalowo --- lcitool/application.py | 12 ++++++++++++ lcitool/commandline.py | 6 ++++++ 2 files changed, 18 insertions(+) diff --git a/lcitool/application.py b/lcitool/application.py index 93af712..5b12d18 100644 --- a/lcitool/application.py +++ b/lcitool/application.py @@ -18,6 +18,7 @@ from lcitool.projects import Projects from lcitool.targets import Targets, BuildTarget from lcitool.formatters import DockerfileFormatter, ShellVariablesFormatter, JSONVariablesFormatter, ShellBuildEnvFormatter from lcitool.manifest import Manifest +from lcitool.containers import Docker, Podman, ContainerError log = logging.getLogger(__name__) @@ -314,6 +315,17 @@ class Application: return client + def _action_list_engines(self, args): + engines = [] + for engine in [Podman(), Docker()]: + if engine.available: + engines.append(engine.engine) + + if engines: + print("\n".join(engines)) + else: + print("No engine available") + def run(self, args): try: util.set_extra_data_dir(args.data_dir) diff --git a/lcitool/commandline.py b/lcitool/commandline.py index 164888b..8bd60c6 100644 --- a/lcitool/commandline.py +++ b/lcitool/commandline.py @@ -292,6 +292,12 @@ class CommandLine: dest='container') containersubparser.required = True + container_engineparser = containersubparser.add_parser( + "engines", + help="List available container engines", + ) + container_engineparser.set_defaults(func=Application._action_list_engines) + # Validate "container" args def _validate(self, args): """ -- cgit v1.1