syntaxis/config/provctl/scripts/export-config.nu

164 lines
3.4 KiB
Plaintext
Raw Normal View History

#!/usr/bin/env nu
# export-config.nu - Export deployment configuration as environment variables
#
# Generated by: provctl gen deployment
# Generated at: 2025-11-20
#
# Exports deployment configuration from KCL as environment variables
# Usage:
# source export-config.nu
# echo $env.DEPLOYMENT_PROJECT_NAME
# echo $env.ENABLED_SERVICES
# Project information
export-env {
$env.DEPLOYMENT_PROJECT_NAME = "myproject"
$env.DEPLOYMENT_PROJECT_VERSION = "1.0.0"
$env.DEPLOYMENT_PROJECT_DESCRIPTION = "y"
}
# Enabled services
export-env {
$env.SERVICE_CLI_ENABLED = "false"
}
export-env {
$env.SERVICE_TUI_ENABLED = "false"
}
export-env {
$env.SERVICE_API_ENABLED = "false"
}
export-env {
$env.SERVICE_DASHBOARD_ENABLED = "false"
}
# Database configuration
export-env {
$env.DATABASE_DEFAULT = "sqlite"
$env.SUPPORTED_DATABASES = [] # Populated by deployment configuration
}
export-env {
$env.DATABASE_SQLITE_ENABLED = "false"
}
export-env {
$env.DATABASE_POSTGRES_ENABLED = "false"
}
export-env {
$env.DATABASE_MYSQL_ENABLED = "false"
}
export-env {
$env.DATABASE_SURREALDB_ENABLED = "false"
}
# Cache configuration
export-env {
$env.CACHE_ENABLED = "false"
}
# Deployment presets
export-env {
$env.AVAILABLE_PRESETS = [
"n"
]
$env.DEFAULT_PRESET = "dev"
}
# Helper functions for common operations
# List all enabled services
def services [] {
"""List all enabled services in this deployment"""
[
{
name: "myproject-cli"
type: "cli"
requires: []
}
,
{
name: "myproject-dashboard"
type: "web"
requires: ["api"]
}
]
}
# List all configured databases
def databases [] {
"""List all configured database backends"""
[
{
type: "sqlite"
host: ""
port: ""
path: "/var/lib/myproject/db.sqlite"
}
]
}
# List all deployment presets
def presets [] {
"""List all available deployment presets"""
[
{
name: "n"
}
]
}
# Print deployment summary
def summary [] {
"""Print a summary of this deployment configuration"""
print $"Project: myproject v1.0.0"
print $"Description: y"
print ""
print "Enabled Services:"
services | each { |svc|
if $svc.port != null {
print $" - ($svc.name) [$svc.type]:($svc.port)"
} else {
print $" - ($svc.name) [$svc.type]"
}
}
print ""
print "Databases:"
databases | each { |db|
if $db.host != null {
print $" - ($db.type) (($db.host):($db.port))"
} else if $db.path != null {
print $" - ($db.type) (($db.path))"
} else {
print $" - ($db.type)"
}
}
print ""
print "Available Presets:"
presets | each { |preset|
print $" - ($preset.name): ($preset.description)"
}
}
# Export for easy access
export def services [] {
"""List all enabled services in this deployment"""
services
}
export def databases [] {
"""List all configured database backends"""
databases
}
export def presets [] {
"""List all available deployment presets"""
presets
}
export def summary [] {
"""Print a summary of this deployment configuration"""
summary
}
# Print summary when sourced
print "Deployment configuration loaded: myproject"
print "Run 'summary' to see deployment overview"