make it universal

This commit is contained in:
2026-02-21 19:33:19 +03:00
parent 408ae6a76b
commit 3090b18ff9
10 changed files with 109 additions and 212 deletions

49
config.go Normal file
View File

@@ -0,0 +1,49 @@
package main
import (
"encoding/json"
"fmt"
"os"
"golang.org/x/oauth2"
)
func readConfig(filePath string) (*oauth2.Token, error) {
if _, err := os.Stat(filePath); os.IsNotExist(err) {
f, err := os.Create(filePath)
if err != nil {
return nil, fmt.Errorf("failed to create config file: %v", err)
}
if _, err := f.Write([]byte("{}")); err != nil {
return nil, fmt.Errorf("failed to write empty object: %v", err)
}
return &oauth2.Token{}, nil
}
f, err := os.OpenFile(filePath, os.O_RDWR, 0644)
if err != nil {
return nil, fmt.Errorf("failed to open config file: %v", err)
}
defer f.Close()
token := new(oauth2.Token)
if err := json.NewDecoder(f).Decode(token); err != nil {
return nil, fmt.Errorf("failed to decode json from config file: %v", err)
}
return token, nil
}
func writeConfig(filePath string, token *oauth2.Token) error {
f, err := os.OpenFile(filePath, os.O_WRONLY, 0644)
if err != nil {
return fmt.Errorf("failed to open config file: %v", err)
}
defer f.Close()
if err := json.NewEncoder(f).Encode(token); err != nil {
return fmt.Errorf("failed to encode json to config file: %v", err)
}
return nil
}