# Shared Integration Utilities
# Plugin detection, status checking, and flag parsing

# Check if a plugin is available
export def is-plugin-available [plugin_name: string] {
    (plugin list | where name == $plugin_name | length) > 0
}

# Check if provisioning plugins are loaded
export def plugins-status [] {
    {
        auth: (is-plugin-available "nu_plugin_auth")
        kms: (is-plugin-available "nu_plugin_kms")
        orchestrator: (is-plugin-available "nu_plugin_orchestrator")
    }
}

# Helper to parse flags from args
export def parse-flag [args: list, long_flag: string, short_flag: string = ""] {
    let long_idx = ($args | enumerate | where item == $long_flag | get index | first | default null)
    if ($long_idx != null) {
        return ($args | get ($long_idx + 1) | default null)
    }

    if ($short_flag | is-not-empty) {
        let short_idx = ($args | enumerate | where item == $short_flag | get index | first | default null)
        if ($short_idx != null) {
            return ($args | get ($short_idx + 1) | default null)
        }
    }

    null
}
