Files
taskrunner/registry/directory_actions.py
T
esilva 8d73d5ded7
main / Explore-Gitea-Actions (push) Failing after 14s
Migrating the classes to pydantic
2026-08-03 23:37:25 +01:00

43 lines
1.4 KiB
Python

# directory actions registry
from playbook.action_registry import ActionRegistry
from playbook.logging_models import StepLogModel
import os
diract = ActionRegistry(name="directory_actions_reg")
@diract.register(name="directory_exists", version="stat1.0")
def directory_exists(ctx, name) -> StepLogModel:
if not os.path.exists(ctx["repoPath"]):
return StepLogModel.fail(name, [
{"status": "failed", "output": f"dir '{ctx["repoPath"]}' doesn't exist"}]
)
return StepLogModel.ok(name, "directory exists")
@diract.register(name="create_dir", version="stat1.0")
def create_dir(ctx, name) -> StepLogModel:
try:
os.makedirs(ctx["repoPath"])
except Exception as e:
return StepLogModel.fail(name, [{"status": "failed", "output": str(e)}])
return StepLogModel.ok(name, "dir create successfully")
@diract.register(name="create_dir_if_not_exists", version="stat1.0")
def create_dir_if_not_exists(ctx, name) -> StepLogModel:
log: StepLogModel = directory_exists(ctx, name + f".{directory_exists.__name__}")
msg: str = ""
if log.failed:
dir_creation_log: StepLogModel = create_dir(ctx, name + f".{create_dir.__name__}")
if dir_creation_log.failed:
return StepLogModel.fail(name, [{"status": "failed", "output": dir_creation_log}])
msg = "dir created succesfully"
else:
msg = "dir already exists"
return StepLogModel.ok(name, msg)