46 lines
825 B
Go
46 lines
825 B
Go
package main
|
||
|
||
import (
|
||
"fmt"
|
||
"github.com/urfave/cli"
|
||
"os"
|
||
|
||
"github.com/pelotech/drone-helm3/internal/run"
|
||
)
|
||
|
||
func main() {
|
||
app := cli.NewApp()
|
||
app.Name = "helm plugin"
|
||
app.Usage = "helm plugin"
|
||
app.Action = execute
|
||
app.Version = "0.0.1α"
|
||
app.Flags = []cli.Flag{
|
||
cli.StringFlag{
|
||
Name: "helm_command",
|
||
Usage: "Helm command to execute",
|
||
EnvVar: "PLUGIN_HELM_COMMAND,HELM_COMMAND",
|
||
},
|
||
}
|
||
|
||
if err := app.Run(os.Args); err != nil {
|
||
fmt.Fprintf(os.Stderr, "%s\n", err.Error())
|
||
}
|
||
}
|
||
|
||
|
||
func execute(c *cli.Context) error {
|
||
switch c.String("helm_command") {
|
||
case "upgrade":
|
||
run.Upgrade()
|
||
case "help":
|
||
run.Help()
|
||
default:
|
||
switch os.Getenv("DRONE_BUILD_EVENT") {
|
||
case "push", "tag", "deployment", "pull_request", "promote", "rollback":
|
||
run.Upgrade()
|
||
default:
|
||
run.Help()
|
||
}
|
||
return nil
|
||
}
|