support ledger file append
This commit is contained in:
46
config.go
46
config.go
@@ -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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user