From 31bc04a0c438f8056f94bd39ad688cfa2d393169 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Ruffinoni?= Date: Thu, 2 Mar 2023 20:20:26 +0100 Subject: [PATCH 1/2] fix: init command once --- commands.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/commands.go b/commands.go index 99b43ba..fc4e6c1 100644 --- a/commands.go +++ b/commands.go @@ -35,10 +35,11 @@ type Cmd struct { // The command error handling strategy ErrorHandling flag.ErrorHandling - init CmdInitializer - name string - aliases []string - desc string + init CmdInitializer + initDone bool + name string + aliases []string + desc string commands []*Cmd options []*container.Container @@ -133,6 +134,7 @@ func (c *Cmd) Command(name, desc string, init CmdInitializer) { aliases: aliases, desc: desc, init: init, + initDone: false, commands: []*Cmd{}, options: []*container.Container{}, optionsIdx: map[string]*container.Container{}, @@ -440,7 +442,7 @@ func (c *Cmd) Var(p VarParam) { } func (c *Cmd) doInit() error { - if c.init != nil { + if c.init != nil && !c.initDone { c.init(c) } From 3d38fc0a89ba92a090987ec863203ecaf617a81e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Ruffinoni?= Date: Thu, 2 Mar 2023 20:31:48 +0100 Subject: [PATCH 2/2] fix: missing initDone to true --- commands.go | 1 + 1 file changed, 1 insertion(+) diff --git a/commands.go b/commands.go index fc4e6c1..2420d0d 100644 --- a/commands.go +++ b/commands.go @@ -444,6 +444,7 @@ func (c *Cmd) Var(p VarParam) { func (c *Cmd) doInit() error { if c.init != nil && !c.initDone { c.init(c) + c.initDone = true } parents := append(c.parents, c.name)