(fs []Flag)
| 99 | } |
| 100 | |
| 101 | func newFlagCategoriesFromFlags(fs []Flag) FlagCategories { |
| 102 | fc := newFlagCategories() |
| 103 | |
| 104 | var categorized bool |
| 105 | |
| 106 | for _, fl := range fs { |
| 107 | if cf, ok := fl.(CategorizableFlag); ok { |
| 108 | visible := false |
| 109 | if vf, ok := fl.(VisibleFlag); ok { |
| 110 | visible = vf.IsVisible() |
| 111 | } |
| 112 | if cat := cf.GetCategory(); cat != "" && visible { |
| 113 | fc.AddFlag(cat, fl) |
| 114 | categorized = true |
| 115 | } |
| 116 | } |
| 117 | } |
| 118 | |
| 119 | if categorized { |
| 120 | for _, fl := range fs { |
| 121 | if cf, ok := fl.(CategorizableFlag); ok { |
| 122 | visible := false |
| 123 | if vf, ok := fl.(VisibleFlag); ok { |
| 124 | visible = vf.IsVisible() |
| 125 | } |
| 126 | if cf.GetCategory() == "" && visible { |
| 127 | fc.AddFlag("", fl) |
| 128 | } |
| 129 | } |
| 130 | } |
| 131 | } |
| 132 | |
| 133 | return fc |
| 134 | } |
| 135 | |
| 136 | func (f *defaultFlagCategories) AddFlag(category string, fl Flag) { |
| 137 | if _, ok := f.m[category]; !ok { |
no test coverage detected