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")
}
}