a helper to make simple programs with cobra
Go to file
Roberto Hidalgo 7bff52a47f tweak logging
2022-12-31 17:53:49 -06:00
internal tweak logging 2022-12-31 17:53:49 -06:00
pkg tweak logging 2022-12-31 17:53:49 -06:00
.editorconfig moar milpa stuff 2022-12-30 23:53:24 -06:00
.golangci.yml milpa, pero para golang 2022-12-18 21:04:34 -06:00
.tool-versions milpa, pero para golang 2022-12-18 21:04:34 -06:00
go.mod moar milpa stuff 2022-12-30 23:53:24 -06:00
go.sum moar milpa stuff 2022-12-30 23:53:24 -06:00
LICENSE.txt fix license 2022-12-31 00:12:55 -06:00
main.go moar milpa stuff 2022-12-30 23:53:24 -06:00
README.md sigh 2022-12-30 01:00:26 -06:00

Chinampa

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