This plugin will allow users to override the builder used for their application, enabling users to use custom builders if desired.
51 lines
1.2 KiB
Go
51 lines
1.2 KiB
Go
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 ]")
|
|
osArgs, infoFlag, flagErr := common.ParseReportArgs("builder", os.Args[2:])
|
|
if flagErr == nil {
|
|
args.Parse(osArgs)
|
|
appName := args.Arg(0)
|
|
err = builder.CommandReport(appName, *format, 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)
|
|
}
|
|
}
|