2022-12-19 03:04:34 +00:00
|
|
|
// Copyright © 2022 Roberto Hidalgo <chinampa@un.rob.mx>
|
2022-12-31 05:53:24 +00:00
|
|
|
// SPDX-License-Identifier: Apache-2.0
|
2022-12-19 03:04:34 +00:00
|
|
|
package chinampa
|
|
|
|
|
|
|
|
import (
|
|
|
|
"git.rob.mx/nidito/chinampa/internal/registry"
|
|
|
|
"git.rob.mx/nidito/chinampa/pkg/command"
|
2022-12-29 19:05:58 +00:00
|
|
|
"git.rob.mx/nidito/chinampa/pkg/runtime"
|
2023-01-18 04:20:46 +00:00
|
|
|
"github.com/spf13/cobra"
|
2022-12-19 03:04:34 +00:00
|
|
|
)
|
|
|
|
|
2023-01-11 05:40:43 +00:00
|
|
|
func Register(cmds ...*command.Command) {
|
|
|
|
for _, cmd := range cmds {
|
|
|
|
registry.Register(cmd.SetBindings())
|
|
|
|
}
|
2022-12-19 03:04:34 +00:00
|
|
|
}
|
|
|
|
|
2022-12-29 19:05:58 +00:00
|
|
|
type Config struct {
|
|
|
|
Name string
|
|
|
|
Version string
|
|
|
|
Summary string
|
|
|
|
Description string
|
|
|
|
}
|
|
|
|
|
2023-01-18 04:20:46 +00:00
|
|
|
func SetErrorHandler(handlerFunc func(cmd *cobra.Command, err error) error) {
|
|
|
|
registry.ErrorHandler = handlerFunc
|
|
|
|
}
|
|
|
|
|
2022-12-29 19:05:58 +00:00
|
|
|
func Execute(config Config) error {
|
|
|
|
runtime.Executable = config.Name
|
|
|
|
command.Root.Summary = config.Summary
|
|
|
|
command.Root.Description = config.Description
|
|
|
|
command.Root.Path = []string{runtime.Executable}
|
|
|
|
return registry.Execute(config.Version)
|
2022-12-19 03:04:34 +00:00
|
|
|
}
|