build: cleanup base build interface.

This commit is contained in:
Alexandre Pujol 2024-09-26 22:05:47 +01:00
parent c6c4920598
commit 6f5604d59d
No known key found for this signature in database
GPG Key ID: C5469996F0DF68EC
6 changed files with 21 additions and 16 deletions

View File

@ -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
}

View File

@ -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`,
},

View File

@ -35,10 +35,12 @@ func init() {
Base: cfg.Base{
Keyword: "dbus",
Msg: "Dbus directive applied",
Help: `#aa:dbus own bus=<bus> name=<name> [interface=AARE] [path=AARE]
#aa:dbus talk bus=<bus> name=<name> label=<profile> [interface=AARE] [path=AARE]`,
},
})
Help: []string{
"own bus=<bus> name=<name> [interface=AARE] [path=AARE]",
"talk bus=<bus> name=<name> label=<profile> [interface=AARE] [path=AARE]",
},
}},
)
}
func setInterfaces(rules map[string]string) []string {

View File

@ -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..."},
},
})
}

View File

@ -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..."},
},
})
}

View File

@ -33,7 +33,7 @@ func init() {
Base: cfg.Base{
Keyword: "stack",
Msg: "Stack directive applied",
Help: Keyword + `stack [X] profiles...`,
Help: []string{"[X] profiles..."},
},
})
}