diff options
Diffstat (limited to 'handlers_drive.go')
| -rw-r--r-- | handlers_drive.go | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/handlers_drive.go b/handlers_drive.go index 13ba9c0..4fa00cf 100644 --- a/handlers_drive.go +++ b/handlers_drive.go @@ -6,6 +6,7 @@ import ( "io" "io/ioutil" "path/filepath" + "net/http" "./cli" "./auth" "./drive" @@ -309,10 +310,18 @@ func aboutExportHandler(ctx cli.Context) { checkErr(err) } -func newDrive(args cli.Arguments) *drive.Drive { +func getOauthClient(args cli.Arguments) (*http.Client, error) { + if args.String("refreshToken") != "" { + return auth.NewRefreshTokenClient(ClientId, ClientSecret, args.String("refreshToken")), nil + } + configDir := args.String("configDir") tokenPath := ConfigFilePath(configDir, TokenFilename) - oauth, err := auth.NewOauthClient(ClientId, ClientSecret, tokenPath, authCodePrompt) + return auth.NewFileSourceClient(ClientId, ClientSecret, tokenPath, authCodePrompt) +} + +func newDrive(args cli.Arguments) *drive.Drive { + oauth, err := getOauthClient(args) if err != nil { ExitF("Failed getting oauth client: %s", err.Error()) } |
