func statusCommandAction()

in cmd/status.go [80:144]


func statusCommandAction(cmd *cobra.Command, args []string) error {
	var packageName string

	showAll, err := cmd.Flags().GetBool(cobraext.ShowAllFlagName)
	if err != nil {
		return cobraext.FlagParsingError(err, cobraext.ShowAllFlagName)
	}
	if len(args) > 0 {
		packageName = args[0]
	}

	kibanaVersion, err := cmd.Flags().GetString(cobraext.StatusKibanaVersionFlagName)
	if err != nil {
		return cobraext.FlagParsingError(err, cobraext.StatusKibanaVersionFlagName)
	}
	extraParameters, err := cmd.Flags().GetStringSlice(cobraext.StatusExtraInfoFlagName)
	if err != nil {
		return cobraext.FlagParsingError(err, cobraext.StatusExtraInfoFlagName)
	}
	format, err := cmd.Flags().GetString(cobraext.StatusFormatFlagName)
	if err != nil {
		return cobraext.FlagParsingError(err, cobraext.StatusFormatFlagName)
	}
	if !slices.Contains(availableFormatsParameters, format) {
		return cobraext.FlagParsingError(fmt.Errorf("unsupported format %q, supported formats: %s", format, strings.Join(availableFormatsParameters, ",")), cobraext.StatusFormatFlagName)
	}

	err = validateExtraInfoParameters(extraParameters)
	if err != nil {
		return fmt.Errorf("validating info paramaters failed: %w", err)

	}
	options := registry.SearchOptions{
		All:           showAll,
		KibanaVersion: kibanaVersion,
		Prerelease:    true,

		// Deprecated, keeping for compatibility with older versions of the registry.
		Experimental: true,
	}
	packageStatus, err := getPackageStatus(packageName, options)
	if err != nil {
		return err
	}

	if slices.Contains(extraParameters, serverlessProjectTypesParameter) {
		if packageName == "" && packageStatus.Local != nil {
			packageName = packageStatus.Local.Name
		}
		packageStatus.Serverless, err = getServerlessManifests(packageName, options)
		if err != nil {
			return err
		}
	}

	switch format {
	case "table":
		return print(packageStatus, os.Stdout, extraParameters)
	case "json":
		return printJSON(packageStatus, os.Stdout, extraParameters)
	default:
		return errors.New("unknown format")
	}

}