email-xactions-to-todo/config.go

51 lines
1.4 KiB
Go

package main
import (
"local/args"
"local/storage"
)
type Config struct {
EmailUser string
EmailPass string
EmailIMAP string
TodoAddr string
TodoPass string
Storage storage.DB
}
var config Config
func NewConfig() Config {
as := args.NewArgSet()
as.Append(args.STRING, "emailuser", "email username", "breellocaldev@gmail.com")
as.Append(args.STRING, "emailpass", "email password", "ML3WQRFSqe9rQ8qNkm")
as.Append(args.STRING, "emailimap", "email imap", "imap.gmail.com:993")
as.Append(args.STRING, "todoaddr", "todo addr", "https://todo-server.remote.blapointe.com")
as.Append(args.STRING, "todopass", "todo pass", "gJtEXbbLHLf54yS9EdujtVN2n6Y")
as.Append(args.STRING, "store", "store type", "map")
as.Append(args.STRING, "storeaddr", "store addr", "/tmp/store")
as.Append(args.STRING, "storeuser", "store user", "")
as.Append(args.STRING, "storepass", "store pass", "")
if err := as.Parse(); err != nil {
panic(err)
}
storage, err := storage.New(storage.TypeFromString(as.GetString("store")), as.GetString("storeaddr"), as.GetString("storeuser"), as.GetString("storepass"))
if err != nil {
panic(err)
}
config = Config{
EmailUser: as.GetString("emailuser"),
EmailPass: as.GetString("emailpass"),
EmailIMAP: as.GetString("emailimap"),
TodoAddr: as.GetString("todoaddr"),
TodoPass: as.GetString("todopass"),
Storage: storage,
}
return config
}