diff --git a/pkg/prebuild/cfg/core.go b/pkg/prebuild/cfg/core.go index 692f130a..56b91ed6 100644 --- a/pkg/prebuild/cfg/core.go +++ b/pkg/prebuild/cfg/core.go @@ -9,20 +9,20 @@ import "fmt" type BaseInterface interface { Message() string Name() string - Usage() string + Usage() []string } type Base struct { Msg string Keyword string - Help string + Help []string } func (b Base) Name() string { return b.Keyword } -func (b Base) Usage() string { +func (b Base) Usage() []string { return b.Help } @@ -41,7 +41,9 @@ func Help[T BaseInterface](name string, tasks map[string]T) string { func Usage[T BaseInterface](name string, tasks map[string]T) string { res := fmt.Sprintf("%s\n", name) for _, t := range tasks { - res += fmt.Sprintf(" %s\n", t.Usage()) + for _, h := range t.Usage() { + res += fmt.Sprintf(" #aa:%s %s\n", t.Name(), h) + } } return res } diff --git a/pkg/prebuild/cfg/core_test.go b/pkg/prebuild/cfg/core_test.go index ff76f946..7cde166a 100644 --- a/pkg/prebuild/cfg/core_test.go +++ b/pkg/prebuild/cfg/core_test.go @@ -5,6 +5,7 @@ package cfg import ( + "slices" "strings" "testing" ) @@ -17,7 +18,7 @@ func TestBase_Helpers(t *testing.T) { }{ { name: "base", - b: Base{Keyword: "test", Help: "test", Msg: "test"}, + b: Base{Keyword: "test", Help: []string{"test"}, Msg: "test"}, want: "test", }, } @@ -26,7 +27,7 @@ func TestBase_Helpers(t *testing.T) { if got := tt.b.Name(); got != tt.want { t.Errorf("Base.Name() = %v, want %v", got, tt.want) } - if got := tt.b.Usage(); got != tt.want { + if got := tt.b.Usage(); !slices.Equal(got, []string{tt.want}) { t.Errorf("Base.Usage() = %v, want %v", got, tt.want) } if got := tt.b.Message(); got != tt.want { @@ -45,8 +46,8 @@ func TestHelp(t *testing.T) { { name: "one", tasks: map[string]Base{ - "one": {Keyword: "one", Help: "one", Msg: "one"}, - "two": {Keyword: "two", Help: "two", Msg: "two"}, + "one": {Keyword: "one", Help: []string{"one"}, Msg: "one"}, + "two": {Keyword: "two", Help: []string{"two"}, Msg: "two"}, }, want: `one`, }, diff --git a/pkg/prebuild/directive/dbus.go b/pkg/prebuild/directive/dbus.go index dc7ac16d..98f5cd61 100644 --- a/pkg/prebuild/directive/dbus.go +++ b/pkg/prebuild/directive/dbus.go @@ -35,10 +35,12 @@ func init() { Base: cfg.Base{ Keyword: "dbus", Msg: "Dbus directive applied", - Help: `#aa:dbus own bus= name= [interface=AARE] [path=AARE] - #aa:dbus talk bus= name= label= [interface=AARE] [path=AARE]`, - }, - }) + Help: []string{ + "own bus= name= [interface=AARE] [path=AARE]", + "talk bus= name= label= [interface=AARE] [path=AARE]", + }, + }}, + ) } func setInterfaces(rules map[string]string) []string { diff --git a/pkg/prebuild/directive/exec.go b/pkg/prebuild/directive/exec.go index b77d80fa..64c97e9c 100644 --- a/pkg/prebuild/directive/exec.go +++ b/pkg/prebuild/directive/exec.go @@ -25,7 +25,7 @@ func init() { Base: cfg.Base{ Keyword: "exec", Msg: "Exec directive applied", - Help: Keyword + `exec [P|U|p|u|PU|pu|] profiles...`, + Help: []string{"[P|U|p|u|PU|pu|] profiles..."}, }, }) } diff --git a/pkg/prebuild/directive/filter.go b/pkg/prebuild/directive/filter.go index 1c90fa76..39e6c006 100644 --- a/pkg/prebuild/directive/filter.go +++ b/pkg/prebuild/directive/filter.go @@ -25,14 +25,14 @@ func init() { Base: cfg.Base{ Keyword: "only", Msg: "Only directive applied", - Help: Keyword + `only filters...`, + Help: []string{"filters..."}, }, }) RegisterDirective(&FilterExclude{ Base: cfg.Base{ Keyword: "exclude", Msg: "Exclude directive applied", - Help: Keyword + `exclude filters...`, + Help: []string{"filters..."}, }, }) } diff --git a/pkg/prebuild/directive/stack.go b/pkg/prebuild/directive/stack.go index a2079dfb..c673a170 100644 --- a/pkg/prebuild/directive/stack.go +++ b/pkg/prebuild/directive/stack.go @@ -33,7 +33,7 @@ func init() { Base: cfg.Base{ Keyword: "stack", Msg: "Stack directive applied", - Help: Keyword + `stack [X] profiles...`, + Help: []string{"[X] profiles..."}, }, }) }