-
Notifications
You must be signed in to change notification settings - Fork 0
/
specs.go
46 lines (37 loc) · 992 Bytes
/
specs.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// Source: github.com/scaleway/scaleway-cli/internal/human
package human
import (
"strings"
)
// MarshalOpt is hydrated by core.View
type MarshalOpt struct {
Title string
Fields []*MarshalFieldOpt
Sections []*MarshalSection
// Is set to true if we are marshaling a table cell
TableCell bool
// DisableShrinking will disable columns shrinking based on terminal size
DisableShrinking bool
}
type MarshalFieldOpt struct {
FieldName string
Label string
}
// MarshalSection describes a section to build from a given struct.
// When marshalling, this section is shown under the main struct section.
type MarshalSection struct {
FieldName string
Title string
HideIfEmpty bool
}
func (s *MarshalFieldOpt) getLabel() string {
if s.Label != "" {
return s.Label
}
label := s.FieldName
label = strings.ReplaceAll(label, ".", " ")
//label = strcase.ToBashArg(label)
label = strings.ReplaceAll(label, "-", " ")
label = strings.ToUpper(label)
return label
}