/
main.go
104 lines (95 loc) · 1.94 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
package main
import (
"errors"
"log"
"os"
"github.com/urfave/cli"
)
var (
version = "unknown"
)
func main() {
app := cli.NewApp()
app.Name = "azure web apps plugin"
app.Usage = "azure web apps plugin"
app.Action = run
app.Version = version
app.Flags = []cli.Flag{
cli.StringFlag{
Name: "username",
Usage: "username",
EnvVar: "PLUGIN_USERNAME,AZURE_WEB_APPS_USERNAME",
},
cli.StringFlag{
Name: "password",
Usage: "password",
EnvVar: "PLUGIN_PASSWORD,AZURE_WEB_APPS_PASSWORD",
},
cli.StringFlag{
Name: "site",
Usage: "site",
EnvVar: "PLUGIN_SITE,AZURE_WEB_APPS_SITE",
},
cli.StringFlag{
Name: "slot",
Usage: "slot",
EnvVar: "PLUGIN_SLOT,AZURE_WEB_APPS_SLOT",
},
cli.BoolFlag{
Name: "force",
Usage: "force",
EnvVar: "PLUGIN_FORCE",
},
cli.BoolFlag{
Name: "commit",
Usage: "commit",
EnvVar: "PLUGIN_COMMIT",
},
cli.StringFlag{
Name: "commit.author.name",
Usage: "git author name",
EnvVar: "DRONE_COMMIT_AUTHOR",
},
cli.StringFlag{
Name: "commit.author.email",
Usage: "git author email",
EnvVar: "DRONE_COMMIT_AUTHOR_EMAIL",
},
cli.StringFlag{
Name: "repo.name",
Usage: "repository name",
EnvVar: "DRONE_REPO_NAME",
},
}
if err := app.Run(os.Args); err != nil {
log.Fatal(err)
}
}
func run(c *cli.Context) error {
plugin := Plugin{
Commit: Commit{
Author: Author{
Name: c.String("commit.author.name"),
Email: c.String("commit.author.email"),
},
},
Repo: Repo{
Name: c.String("repo.name"),
},
Config: Config{
Username: c.String("username"),
Password: c.String("password"),
Site: c.String("site"),
Slot: c.String("slot"),
Force: c.Bool("force"),
Commit: c.Bool("commit"),
},
}
if plugin.Config.Username == "" {
return errors.New("Missing username")
}
if plugin.Config.Password == "" {
return errors.New("Missing password")
}
return plugin.Exec()
}