100 lines
3.3 KiB
Plaintext
100 lines
3.3 KiB
Plaintext
![]() |
#!/usr/bin/env nu
|
||
|
# Info: Script to run Provisioning
|
||
|
# Author: JesusPerezLorenzo
|
||
|
# Release: 1.0.4
|
||
|
# Date: 22-2-2024
|
||
|
|
||
|
use lib_provisioning/utils/interface.nu *
|
||
|
use lib_provisioning/utils/error.nu *
|
||
|
use lib_provisioning/setup/utils.nu setup_config_path
|
||
|
|
||
|
use main_provisioning/ops.nu *
|
||
|
use lib_provisioning/context.nu *
|
||
|
use lib_provisioning/setup *
|
||
|
use lib_provisioning/utils *
|
||
|
# use ../../providers/prov_lib/create_middleware.nu make_middleware
|
||
|
|
||
|
# Load $env settings
|
||
|
use env.nu *
|
||
|
|
||
|
|
||
|
# - > Help on Setup
|
||
|
export def "main help" [
|
||
|
--src: string = ""
|
||
|
--notitles # not tittles
|
||
|
--out: string # Print Output format: json, yaml, text (default)
|
||
|
]: nothing -> nothing {
|
||
|
if $notitles == null or not $notitles { show_titles }
|
||
|
^$"($env.PROVISIONING_NAME)" -mod setup --help
|
||
|
if ($out | is-not-empty) { $env.PROVISIONING_NO_TERMINAL = false }
|
||
|
print (provisioning_setup_options)
|
||
|
if not $env.PROVISIONING_DEBUG { end_run "" }
|
||
|
}
|
||
|
|
||
|
def main [
|
||
|
...args: string # Other options, use help to get info
|
||
|
--debug (-x) # Use Debug mode
|
||
|
--notitles # not tittles
|
||
|
--context # install config context
|
||
|
--helpinfo (-h) # For more details use options "help" (no dashes)
|
||
|
--out: string # Print Output format: json, yaml, text (default)
|
||
|
]: nothing -> nothing {
|
||
|
if ($out | is-not-empty) {
|
||
|
$env.PROVISIONING_OUT = $out
|
||
|
$env.PROVISIONING_NO_TERMINAL = true
|
||
|
}
|
||
|
provisioning_init $helpinfo "setup" $args
|
||
|
$env.PROVISIONING_DEBUG = if $debug { true } else { false }
|
||
|
let task = if ($args | length) > 0 { ($args| get 0) } else { "" }
|
||
|
let ops = if ($args | length) > 0 {
|
||
|
($args| skip 1)
|
||
|
} else {
|
||
|
( $"($env.PROVISIONING_ARGS? | default "") " | str replace $"($task) " ""
|
||
|
| str trim | split row " ")
|
||
|
}
|
||
|
let str_ops = ($ops | str join " " | str trim)
|
||
|
match $task {
|
||
|
"h" | "help" => {
|
||
|
exec $"($env.PROVISIONING_NAME)" -mod help --notitles
|
||
|
},
|
||
|
"providers" => {
|
||
|
let name = if ($args | length) > 0 { ($ops | get -i 0 | default "") } else { "" }
|
||
|
let run_args = ($ops | skip 1 | str join " ")
|
||
|
if $name == "check" {
|
||
|
providers_install "" $"($name) ($run_args)"
|
||
|
} else {
|
||
|
providers_install $name ($run_args)
|
||
|
}
|
||
|
},
|
||
|
"tools" => {
|
||
|
let name = if ($args | length) > 0 { ($ops | get -i 0 | default "") } else { "" }
|
||
|
let run_args = ($ops | skip 1 | str join " ")
|
||
|
if $name == "check" {
|
||
|
tools_install "" $"($name) ($run_args)"
|
||
|
} else {
|
||
|
tools_install $name ($run_args)
|
||
|
}
|
||
|
},
|
||
|
"versions" => {
|
||
|
let res = (create_versions_file $str_ops)
|
||
|
},
|
||
|
"middleware" => {
|
||
|
make_middleware
|
||
|
print $"(_ansi green)middleware(_ansi reset) has been created in (_ansi default_dimmed)($env.PROVISIONING_PROVIDERS_PATH | path join "prov_lib")(_ansi reset)"
|
||
|
},
|
||
|
"context" => {
|
||
|
install_config $str_ops "provisioning" --context
|
||
|
},
|
||
|
"defaults" => {
|
||
|
install_config $str_ops "provisioning"
|
||
|
},
|
||
|
"" => {
|
||
|
print $"\n(_ansi blue)($env.PROVISIONING_NAME) setup(_ansi reset) requires option.\nUse 'help' to see options."
|
||
|
},
|
||
|
_ => {
|
||
|
print $"🛑 Error option (_ansi blue)($env.PROVISIONING_NAME) setup(_ansi reset) (_ansi red_bold)($task)(_ansi reset) ($str_ops)"
|
||
|
},
|
||
|
}
|
||
|
if not $env.PROVISIONING_DEBUG { end_run "" }
|
||
|
}
|