// Configuration helper - called after the user has put in the defaults func configHelper(name string) { // See if already have a token token := fs.ConfigFileGet(name, "token") if token != "" { fmt.Printf("Already have a dropbox token - refresh?\n") if !fs.Confirm() { return } } // Get a dropbox db, err := newDropbox(name) if err != nil { log.Fatalf("Failed to create dropbox client: %v", err) } // This method will ask the user to visit an URL and paste the generated code. if err := db.Auth(); err != nil { log.Fatalf("Failed to authorize: %v", err) } // Get the token token = db.AccessToken() // Stuff it in the config file if it has changed old := fs.ConfigFileGet(name, "token") if token != old { fs.ConfigFileSet(name, "token", token) fs.SaveConfig() } }
// Save the token to the config file // // This saves the config file if it changes func (name TokenCache) PutToken(token *oauth.Token) error { tokenBytes, err := json.Marshal(token) if err != nil { return err } tokenString := string(tokenBytes) old := fs.ConfigFile.MustValue(string(name), "token") if tokenString != old { fs.ConfigFile.SetValue(string(name), "token", tokenString) fs.SaveConfig() } return nil }
// putToken stores the token in the config file // // This saves the config file if it changes func putToken(name string, token *oauth2.Token) error { tokenBytes, err := json.Marshal(token) if err != nil { return err } tokenString := string(tokenBytes) old := fs.ConfigFile.MustValue(name, ConfigToken) if tokenString != old { fs.ConfigFile.SetValue(name, ConfigToken, tokenString) fs.SaveConfig() fs.Debug(name, "Saving new token in config file") } return nil }