summaryrefslogtreecommitdiff
path: root/args
diff options
context:
space:
mode:
Diffstat (limited to 'args')
-rw-r--r--args/args.go47
1 files changed, 43 insertions, 4 deletions
diff --git a/args/args.go b/args/args.go
index 9176d27..a360d57 100644
--- a/args/args.go
+++ b/args/args.go
@@ -4,6 +4,9 @@ import (
"errors"
"flag"
"os"
+ "strings"
+
+ "golang.org/x/oauth2"
)
type Arguments struct {
@@ -15,6 +18,9 @@ type Arguments struct {
Port int
Server bool
Migrate bool
+
+ OauthConfig *oauth2.Config
+ OauthUserInfoURI string
}
func GetArgs() (*Arguments, error) {
@@ -31,11 +37,41 @@ func GetArgs() (*Arguments, error) {
cloudflareToken := os.Getenv("CLOUDFLARE_TOKEN")
cloudflareZone := os.Getenv("CLOUDFLARE_ZONE")
- if cloudflareToken == "" {
- return nil, errors.New("please set the CLOUDFLARE_TOKEN environment variable")
+ oauthClientID := os.Getenv("OAUTH_CLIENT_ID")
+ oauthClientSecret := os.Getenv("OAUTH_CLIENT_SECRET")
+ oauthScopes := os.Getenv("OAUTH_SCOPES")
+ oauthAuthURL := os.Getenv("OAUTH_AUTH_URL")
+ oauthTokenURL := os.Getenv("OAUTH_TOKEN_URL")
+ oauthRedirectURI := os.Getenv("OAUTH_REDIRECT_URI")
+ oauthUserInfoURI := os.Getenv("OAUTH_USER_INFO_URI")
+
+ envVars := [][]string{
+ {cloudflareToken, "CLOUDFLARE_TOKEN"},
+ {cloudflareZone, "CLOUDFLARE_ZONE"},
+ {oauthClientID, "OAUTH_CLIENT_ID"},
+ {oauthClientSecret, "OAUTH_CLIENT_SECRET"},
+ {oauthScopes, "OAUTH_SCOPES"},
+ {oauthAuthURL, "OAUTH_AUTH_URL"},
+ {oauthTokenURL, "OAUTH_TOKEN_URL"},
+ {oauthRedirectURI, "OAUTH_REDIRECT_URI"},
+ {oauthUserInfoURI, "OAUTH_USER_INFO_URI"},
}
- if cloudflareZone == "" {
- return nil, errors.New("please set the CLOUDFLARE_ZONE environment variable")
+
+ for _, envVar := range envVars {
+ if envVar[0] == "" {
+ return nil, errors.New("please set the " + envVar[1] + " environment variable")
+ }
+ }
+
+ oauthConfig := &oauth2.Config{
+ ClientID: oauthClientID,
+ ClientSecret: oauthClientSecret,
+ Scopes: strings.Split(oauthScopes, ","),
+ Endpoint: oauth2.Endpoint{
+ AuthURL: oauthAuthURL,
+ TokenURL: oauthTokenURL,
+ },
+ RedirectURL: oauthRedirectURI,
}
arguments := &Arguments{
@@ -47,6 +83,9 @@ func GetArgs() (*Arguments, error) {
Port: *port,
Server: *server,
Migrate: *migrate,
+
+ OauthConfig: oauthConfig,
+ OauthUserInfoURI: oauthUserInfoURI,
}
return arguments, nil