gte/cmd/process-inbox/main.go

47 lines
897 B
Go
Raw Normal View History

2021-01-29 12:29:23 +01:00
package main
import (
"log"
"os"
2021-05-13 09:47:06 +02:00
"git.ewintr.nl/gte/internal/task"
"git.ewintr.nl/gte/pkg/mstore"
2021-01-29 12:29:23 +01:00
)
func main() {
2021-01-29 17:22:07 +01:00
config := &mstore.ImapConfiguration{
ImapUrl: os.Getenv("IMAP_URL"),
ImapUsername: os.Getenv("IMAP_USERNAME"),
ImapPassword: os.Getenv("IMAP_PASSWORD"),
2021-01-29 12:29:23 +01:00
}
if !config.Valid() {
2021-01-29 17:22:07 +01:00
log.Fatal("please set IMAP_USER, IMAP_PASSWORD, etc environment variables")
2021-01-29 12:29:23 +01:00
}
2021-01-29 17:22:07 +01:00
mailStore, err := mstore.ImapConnect(config)
2021-01-29 12:29:23 +01:00
if err != nil {
log.Fatal(err)
}
defer mailStore.Disconnect()
taskRepo := task.NewRepository(mailStore)
2021-01-29 17:22:07 +01:00
tasks, err := taskRepo.FindAll(task.FOLDER_INBOX)
2021-01-29 12:29:23 +01:00
if err != nil {
log.Fatal(err)
}
2021-02-05 10:07:29 +01:00
var cleanupNeeded bool
2021-01-29 12:29:23 +01:00
for _, t := range tasks {
2021-01-29 17:22:07 +01:00
if t.Dirty {
2021-01-29 12:29:23 +01:00
if err := taskRepo.Update(t); err != nil {
log.Fatal(err)
}
2021-02-05 10:07:29 +01:00
cleanupNeeded = true
2021-01-29 12:29:23 +01:00
}
}
2021-02-05 10:07:29 +01:00
if cleanupNeeded {
if err := taskRepo.CleanUp(); err != nil {
log.Fatal(err)
}
2021-01-29 19:40:46 +01:00
}
2021-01-29 12:29:23 +01:00
}