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 }