diff options
Diffstat (limited to 'cmd/app/main.go')
| -rw-r--r-- | cmd/app/main.go | 94 |
1 files changed, 54 insertions, 40 deletions
diff --git a/cmd/app/main.go b/cmd/app/main.go index 07c2cdb8..d937ceac 100644 --- a/cmd/app/main.go +++ b/cmd/app/main.go @@ -141,57 +141,71 @@ func main() { ) } - c.NewCommand( - "run", "Start the named application", - func(args []string) error { - if len(args) != 1 { - dents, err := os.ReadDir(base.Append("app").String()) + { + var ( + flagCommand string + ) + c.NewCommand( + "run", "Start the named application", + func(args []string) error { + if len(args) != 1 { + dents, err := os.ReadDir(base.Append("app").String()) + if err != nil { + return err + } + for _, dent := range dents { + if dent.IsDir() { + continue + } + fmt.Println(dent.Name()) + } + return nil + } + + var config *hst.Config + var r io.Reader + f, err := os.Open(base.Append("app", args[0]).String()) if err != nil { return err } - for _, dent := range dents { - if dent.IsDir() { - continue + r = f + + var common *os.File + if common, err = os.Open(base.Append("common").String()); err != nil { + if !errors.Is(err, os.ErrNotExist) { + _ = f.Close() + return err } - fmt.Println(dent.Name()) + } else { + r = io.MultiReader(f, common) } - return nil - } - - var config *hst.Config - var r io.Reader - f, err := os.Open(base.Append("app", args[0]).String()) - if err != nil { - return err - } - r = f - var common *os.File - if common, err = os.Open(base.Append("common").String()); err != nil { - if !errors.Is(err, os.ErrNotExist) { - _ = f.Close() + config, err = parse(args[0], base, r) + if closeErr := f.Close(); err == nil { + err = closeErr + } + if common != nil { + if closeErr := common.Close(); err == nil { + err = closeErr + } + } + if err != nil { return err } - } else { - r = io.MultiReader(f, common) - } - config, err = parse(args[0], base, r) - if closeErr := f.Close(); err == nil { - err = closeErr - } - if common != nil { - if closeErr := common.Close(); err == nil { - err = closeErr + if flagCommand != "" { + config.Container.Args[2] = flagCommand } - } - if err != nil { - return err - } - return run(ctx, msg, config) - }, - ) + return run(ctx, msg, config) + }, + ). + Flag( + &flagCommand, + "command", command.StringFlag(""), + "Override configured command", + ) + } c.MustParse(os.Args[1:], func(err error) { if e, ok := errors.AsType[*exec.ExitError](err); ok && e != nil { |
