-
Notifications
You must be signed in to change notification settings - Fork 0
/
flags.go
45 lines (37 loc) · 1.2 KB
/
flags.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
package main
import (
"fmt"
"os"
flag "github.com/spf13/pflag"
"github.com/spf13/viper"
)
const (
urlFlagName = "url"
xpathFlagName = "xpath"
storeDirFlagName = "storedir"
slackWebhookFlagName = "slackwebhook"
extramessageFlagName = "extramessage"
)
var (
versionFlag bool
)
func init() {
flag.Usage = func() {
fmt.Printf("USAGE:\n %s [flags]\nFLAGS:\n", os.Args[0])
flag.PrintDefaults()
}
flag.BoolVar(&versionFlag, "version", false, "print version and exit")
flag.String(urlFlagName, "", "url for track the changes")
flag.String(xpathFlagName, "", "xpath")
flag.String(storeDirFlagName, "./", "filestore dir to keep the changes")
flag.String(slackWebhookFlagName, "", "slack webhook url")
flag.String(extramessageFlagName, "", "extra message content. e.g mention user")
flag.Parse()
viper.BindPFlag(urlFlagName, flag.Lookup(urlFlagName))
viper.BindPFlag(xpathFlagName, flag.Lookup(xpathFlagName))
viper.BindPFlag(storeDirFlagName, flag.Lookup(storeDirFlagName))
viper.BindPFlag(slackWebhookFlagName, flag.Lookup(slackWebhookFlagName))
viper.BindPFlag(extramessageFlagName, flag.Lookup(extramessageFlagName))
viper.SetEnvPrefix("watchhtml")
viper.AutomaticEnv()
}