package main import ( "fmt" "os" "strings" "github.com/dokku/dokku/plugins/builder" "github.com/dokku/dokku/plugins/common" flag "github.com/spf13/pflag" ) // main entrypoint to all subcommands func main() { parts := strings.Split(os.Args[0], "/") subcommand := parts[len(parts)-1] var err error switch subcommand { case "report": args := flag.NewFlagSet("builder:report", flag.ExitOnError) format := args.String("format", "stdout", "format: [ stdout | json ]") reportArgs, flagErr := common.ParseReportArgs("builder", os.Args[2:]) if flagErr == nil { args.Parse(reportArgs.OSArgs) appName := args.Arg(0) if reportArgs.IsGlobal { appName = "--global" } err = builder.CommandReport(appName, *format, reportArgs.InfoFlag) } case "set": args := flag.NewFlagSet("builder:set", flag.ExitOnError) global := args.Bool("global", false, "--global: set a global property") args.Parse(os.Args[2:]) appName := args.Arg(0) property := args.Arg(1) value := args.Arg(2) if *global { appName = "--global" property = args.Arg(0) value = args.Arg(1) } err = builder.CommandSet(appName, property, value) default: err = fmt.Errorf("Invalid plugin subcommand call: %s", subcommand) } if err != nil { common.LogFailWithError(err) } }