#!/usr/bin/env nu # Thin entry for workflow commands. Loads only workflow.nu + targeted lib_provisioning. export-env { let lib_dirs_raw = ($env.NU_LIB_DIRS? | default "") let current_lib_dirs = if ($lib_dirs_raw | type) == "string" { if ($lib_dirs_raw | is-empty) { [] } else { ($lib_dirs_raw | split row ":") } } else { $lib_dirs_raw } let dynamic = ($env.PROVISIONING? | default "" | path join "core" "nulib") $env.NU_LIB_DIRS = ([ "/opt/provisioning/core/nulib" "/usr/local/provisioning/core/nulib" ] | append $current_lib_dirs | append (if ($dynamic | is-not-empty) { [$dynamic] } else { [] })) } use main_provisioning/workflow.nu * def main [ ...args: string --infra (-i): string = "" --notitles --debug (-x) ]: nothing -> nothing { if $debug { $env.PROVISIONING_DEBUG = true } # Strip leading "workflow" / "w" / "wflow" if present let rest = if (($args | length) > 0) and (($args | first) in ["workflow", "wflow", "w"]) { $args | skip 1 } else { $args } let sub = ($rest | get 0? | default "list") let arg1 = ($rest | get 1? | default "") match $sub { "list" | "ls" | "l" => { main workflow list --infra $infra } "status" | "st" => { if ($arg1 | is-empty) { print "Error: workflow status requires a workflow id" print "Usage: prvng workflow status " return } main workflow status $arg1 --infra $infra } "run" | "r" => { if ($arg1 | is-empty) { print "Error: workflow run requires a workflow id" return } main workflow run $arg1 --infra $infra } "validate" | "v" => { main workflow validate --infra $infra } "help" | "h" | "-h" | "--help" => { print "Workflow Management" print "===================" print "" print "Usage: prvng workflow [options]" print "" print "Subcommands:" print " list (alias: ls, l)" print " status (alias: st)" print " run (alias: r)" print " validate (alias: v)" } _ => { print $"Unknown workflow subcommand: ($sub)" print "Run: prvng workflow help" } } }