go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers-sdk/v1/plugin/flag.go (about)

     1  // Copyright (c) Mondoo, Inc.
     2  // SPDX-License-Identifier: BUSL-1.1
     3  
     4  package plugin
     5  
     6  type FlagType byte
     7  
     8  const (
     9  	FlagType_Bool FlagType = 1 + iota
    10  	FlagType_Int
    11  	FlagType_String
    12  	FlagType_List
    13  	FlagType_KeyValue
    14  )
    15  
    16  type FlagOption byte
    17  
    18  const (
    19  	FlagOption_Hidden FlagOption = 0x1 << iota
    20  	FlagOption_Deprecated
    21  	FlagOption_Required
    22  	FlagOption_Password
    23  	// max: 8 options!
    24  )
    25  
    26  type Flag struct {
    27  	Long    string     `json:",omitempty"`
    28  	Short   string     `json:",omitempty"`
    29  	Default string     `json:",omitempty"`
    30  	Desc    string     `json:",omitempty"`
    31  	Type    FlagType   `json:",omitempty"`
    32  	Option  FlagOption `json:",omitempty"`
    33  	// ConfigEntry that is used for this flag:
    34  	// "" = use the same as Long
    35  	// "some.other" = map to some.other field
    36  	// "-" = do not read this from config
    37  	ConfigEntry string `json:",omitempty"`
    38  }