in onedocker/script/cli/onedocker_cli.py [0:0]
def main() -> None:
global container_svc, onedocker_svc, onedocker_package_repo, log_svc, logger, task_definition, repository_path
s = schema.Schema(
{
"upload": bool,
"test": bool,
"show": bool,
"stop": bool,
"--config": schema.And(schema.Use(PurePath), os.path.exists),
"--package_name": schema.Or(None, schema.And(str, len)),
"--package_dir": schema.Or(None, schema.And(str, len)),
"--cmd_args": schema.Or(None, schema.And(str, len)),
"--container": schema.Or(None, schema.And(str, len)),
"--log_path": schema.Or(None, schema.Use(Path)),
"--verbose": bool,
"--help": bool,
"--version": schema.Or(None, schema.And(str, len)),
"--timeout": schema.Or(None, schema.Use(int)),
}
)
arguments = s.validate(docopt(__doc__))
logger = logging.getLogger(__name__)
log_path = arguments["--log_path"]
log_level = logging.DEBUG if arguments["--verbose"] else logging.INFO
logging.basicConfig(filename=log_path, level=log_level)
package_name = arguments["--package_name"]
package_dir = arguments["--package_dir"]
version = (
arguments["--version"] if arguments["--version"] else DEFAULT_BINARY_VERSION
)
config = yaml.load(Path(arguments["--config"])).get("onedocker-cli")
task_definition = config["setting"]["task_definition"]
repository_path = config["setting"]["repository_path"]
storage_svc = _build_storage_service(config["dependency"]["StorageService"])
container_svc = _build_container_service(config["dependency"]["ContainerService"])
onedocker_svc = OneDockerService(container_svc, task_definition)
onedocker_package_repo = OneDockerPackageRepository(storage_svc, repository_path)
log_svc = _build_log_service(config["dependency"]["LogService"])
if arguments["upload"]:
_upload(package_dir, package_name, version)
elif arguments["test"]:
timeout = arguments["--timeout"] if arguments["--timeout"] else DEFAULT_TIMEOUT
_test(package_name, version, arguments["--cmd_args"], timeout)
elif arguments["show"]:
_show(package_name, arguments["--version"])
elif arguments["stop"]:
_stop(arguments["--container"])