support ledger file append

This commit is contained in:
bel
2021-07-29 22:24:30 -06:00
parent f32fb5aad1
commit bbd51ea9c5
3 changed files with 151 additions and 10 deletions

View File

@@ -11,6 +11,18 @@ import (
"strings"
)
type Uploader int
const (
UploaderTodo = Uploader(iota)
UploaderLedger
)
var uploaders = map[string]Uploader{
"todo": UploaderTodo,
"ledger": UploaderLedger,
}
type Config struct {
EmailUser string
EmailPass string
@@ -19,6 +31,7 @@ type Config struct {
TodoToken string
TodoList string
TodoTag string
Uploader Uploader
Storage storage.DB
}
@@ -30,6 +43,9 @@ func NewConfig() Config {
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, "uploader", "todo, ledger", "todo")
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, "todotoken", "todo token", "")
@@ -46,14 +62,10 @@ func NewConfig() Config {
panic(err)
}
token := as.GetString("todotoken")
if len(token) == 0 {
token = getToken(as)
}
list := as.GetString("todolist")
if len(list) == 0 {
list = getList(as, token)
uploader := as.GetString("uploader")
ul, ok := uploaders[uploader]
if !ok {
panic("invalid uploader: " + uploader)
}
storage, err := storage.New(storage.TypeFromString(as.GetString("store")), as.GetString("storeaddr"), as.GetString("storeuser"), as.GetString("storepass"))
@@ -66,11 +78,25 @@ func NewConfig() Config {
EmailPass: as.GetString("emailpass"),
EmailIMAP: as.GetString("emailimap"),
TodoAddr: as.GetString("todoaddr"),
TodoToken: token,
TodoList: list,
TodoTag: as.GetString("todotag"),
Storage: storage,
Uploader: ul,
}
if config.Uploader == UploaderTodo {
token := as.GetString("todotoken")
if len(token) == 0 {
token = getToken(as)
}
list := as.GetString("todolist")
if len(list) == 0 {
list = getList(as, token)
}
config.TodoToken = token
config.TodoList = list
}
return config
}