From d6ab8437b80f7c0633c357f4f2bbf0baeca0d3ec Mon Sep 17 00:00:00 2001 From: Abdulwasiu Apalowo Date: Mon, 31 Oct 2022 11:00:15 +0100 Subject: lcitool container: Add "shell" subcommand Adds "shell" subcommand to the container command. It is run with: lcitool container shell --help The subcommand works standalone, but also accepts --script and --workload-dir options. Signed-off-by: Abdulwasiu Apalowo --- lcitool/application.py | 15 +++++++++------ lcitool/commandline.py | 7 +++++++ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/lcitool/application.py b/lcitool/application.py index a435a59..b840658 100644 --- a/lcitool/application.py +++ b/lcitool/application.py @@ -398,12 +398,15 @@ class Application: raise ApplicationError(f"'{workload_dir}' is not a directory") params["datadir"] = workload_dir.resolve() - script = Path(args.script) - if not script.is_file(): - raise ApplicationError(f"'{script}' is not a file") - params["script"] = script.resolve() - - params["container_cmd"] = "./script" + if args.script: + script = Path(args.script) + if not script.is_file(): + raise ApplicationError(f"'{script}' is not a file") + params["script"] = script.resolve() + + params["container_cmd"] = "/bin/sh" + if args.container == "run": + params["container_cmd"] = "./script" try: client.run(**params) diff --git a/lcitool/commandline.py b/lcitool/commandline.py index 8835b4c..f03aaeb 100644 --- a/lcitool/commandline.py +++ b/lcitool/commandline.py @@ -313,6 +313,13 @@ class CommandLine: ) run_containerparser.set_defaults(func=Application._action_container_run) + shell_containerparser = containersubparser.add_parser( + "shell", + help="Access to an interactive shell", + parents=[imageopt, containeropt, engineopt, workload_diropt, scriptopt] + ) + shell_containerparser.set_defaults(func=Application._action_container_run) + # Validate "container" args def _validate(self, args): """ -- cgit v1.1