47 lines
1011 B
Go
47 lines
1011 B
Go
package main
|
|
|
|
import (
|
|
autocal_config "autocal/config"
|
|
"autocal/jobs"
|
|
"autocal/token"
|
|
"context"
|
|
"os"
|
|
|
|
"github.com/charmbracelet/log"
|
|
"golang.org/x/oauth2/google"
|
|
"google.golang.org/api/calendar/v3"
|
|
"google.golang.org/api/option"
|
|
)
|
|
|
|
func main() {
|
|
ctx := context.Background()
|
|
b, err := os.ReadFile("credentials.json")
|
|
if err != nil {
|
|
log.Fatal("Unable to read client secret file", "err", err)
|
|
}
|
|
|
|
// Setup oauth2 config
|
|
config, err := google.ConfigFromJSON(b, calendar.CalendarScope)
|
|
if err != nil {
|
|
log.Fatal("Unable to parse client secret file to config", "err", err)
|
|
}
|
|
|
|
// Get oauth2 client
|
|
client := token.GetClient(config)
|
|
|
|
// Setup calendar service
|
|
calService, err := calendar.NewService(ctx, option.WithHTTPClient(client))
|
|
if err != nil {
|
|
log.Fatal("Unable to retrieve Calendar client", "err", err)
|
|
}
|
|
|
|
// Parse autocal.yml
|
|
calConfig, err := autocal_config.ParseAutocal("./autocal.yml")
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
// Start job
|
|
jobs.Start(calService, calConfig)
|
|
}
|