Like milpa
but for go programs only.
package main
import (
"os"
"fmt"
"git.rob.mx/nidito/chinampa"
"git.rob.mx/nidito/chinampa/pkg/command"
"git.rob.mx/nidito/chinampa/pkg/runtime"
"github.com/sirupsen/logrus"
)
func main() {
chinampa.Register(&command.Command{
Path: []string{"something"},
Summary: "does something",
Description: "a longer description of how it does stuff",
Arguments: command.Arguments{
{
Name: "argument zero",
Description: "a help text for using argument zero",
Required: true,
},
},
Action: func(cmd *command.Command) error {
someArg := cmd.Arguments[0].ToValue().(string)
return fmt.Errorf("Don't know how to do stuff with %s", someArg)
},
})
logrus.SetFormatter(&logrus.TextFormatter{
DisableLevelTruncation: true,
DisableTimestamp: true,
ForceColors: runtime.ColorEnabled(),
})
if runtime.DebugEnabled() {
logrus.SetLevel(logrus.DebugLevel)
logrus.Debug("Debugging enabled")
}
cfg := chinampa.Config{
Name: "myProgram",
Version: "0.0.0",
Summary: "a short summary of my program",
Description: "a longer text describing what its for",
}
if err := chinampa.Execute(cfg); err != nil {
logrus.Errorf("total failure: %s", err)
os.Exit(2)
}
}