diff options
Diffstat (limited to 'vendor/google.golang.org/api/internal/creds.go')
-rw-r--r-- | vendor/google.golang.org/api/internal/creds.go | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/vendor/google.golang.org/api/internal/creds.go b/vendor/google.golang.org/api/internal/creds.go new file mode 100644 index 0000000..e5b849b --- /dev/null +++ b/vendor/google.golang.org/api/internal/creds.go | |||
@@ -0,0 +1,45 @@ | |||
1 | // Copyright 2017 Google LLC | ||
2 | // | ||
3 | // Licensed under the Apache License, Version 2.0 (the "License"); | ||
4 | // you may not use this file except in compliance with the License. | ||
5 | // You may obtain a copy of the License at | ||
6 | // | ||
7 | // http://www.apache.org/licenses/LICENSE-2.0 | ||
8 | // | ||
9 | // Unless required by applicable law or agreed to in writing, software | ||
10 | // distributed under the License is distributed on an "AS IS" BASIS, | ||
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
12 | // See the License for the specific language governing permissions and | ||
13 | // limitations under the License. | ||
14 | |||
15 | package internal | ||
16 | |||
17 | import ( | ||
18 | "context" | ||
19 | "fmt" | ||
20 | "io/ioutil" | ||
21 | |||
22 | "golang.org/x/oauth2/google" | ||
23 | ) | ||
24 | |||
25 | // Creds returns credential information obtained from DialSettings, or if none, then | ||
26 | // it returns default credential information. | ||
27 | func Creds(ctx context.Context, ds *DialSettings) (*google.DefaultCredentials, error) { | ||
28 | if ds.Credentials != nil { | ||
29 | return ds.Credentials, nil | ||
30 | } | ||
31 | if ds.CredentialsJSON != nil { | ||
32 | return google.CredentialsFromJSON(ctx, ds.CredentialsJSON, ds.Scopes...) | ||
33 | } | ||
34 | if ds.CredentialsFile != "" { | ||
35 | data, err := ioutil.ReadFile(ds.CredentialsFile) | ||
36 | if err != nil { | ||
37 | return nil, fmt.Errorf("cannot read credentials file: %v", err) | ||
38 | } | ||
39 | return google.CredentialsFromJSON(ctx, data, ds.Scopes...) | ||
40 | } | ||
41 | if ds.TokenSource != nil { | ||
42 | return &google.DefaultCredentials{TokenSource: ds.TokenSource}, nil | ||
43 | } | ||
44 | return google.FindDefaultCredentials(ctx, ds.Scopes...) | ||
45 | } | ||