# List all infrastructures in active workspace # This file is sourced by bash after lib_minimal.nu is loaded # Not meant to be run standalone # Get active workspace let ws_result = (workspace-active) let active_ws = if (is-ok $ws_result) { $ws_result.ok } else { "" } if ($active_ws | is-empty) { print 'No active workspace' exit 1 } # Get workspace path from config let user_config_path = ( $env.HOME | path join 'Library' | path join 'Application Support' | path join 'provisioning' | path join 'user_config.yaml' ) if not ($user_config_path | path exists) { print 'Config not found' exit 1 } let config = (open $user_config_path) let workspaces = ($config | get --optional workspaces | default []) let ws = ($workspaces | where { $in.name == $active_ws } | first) if ($ws | is-empty) { print 'Workspace not found' exit 1 } let ws_path = $ws.path let infra_path = ($ws_path | path join 'infra') if not ($infra_path | path exists) { print '📁 Available Infrastructures: (none configured)' exit 0 } # List all infrastructures let infras = ( ls $infra_path | where type == 'dir' | each {|inf| let inf_name = ($inf.name | path basename) let inf_full_path = ($infra_path | path join $inf_name) let has_config = (($inf_full_path | path join 'settings.ncl') | path exists) { name: $inf_name configured: $has_config modified: $inf.modified } } ) if ($infras | length) == 0 { print '📁 Available Infrastructures: (none found)' } else { print '📁 Available Infrastructures:' print '' $infras | each {|inf| let status = if $inf.configured { '✓' } else { '○' } let output = " [" + $status + "] " + $inf.name print $output } | ignore }