aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2019-05-22 11:35:55 -0400
committerDrew DeVault <sir@cmpwn.com>2019-05-22 11:35:55 -0400
commit9b19e3ad054132fdab4062915f70122faaa5c163 (patch)
tree4a41b871550f6fd692711a56aa9b2b7898c8c8f2
parent1a45b793c7d1d59e209be3eb4b4f794a78085e5d (diff)
downloadaerc-9b19e3ad054132fdab4062915f70122faaa5c163.tar.gz
Show account wizard if no accounts configured
-rw-r--r--config/config.go9
-rw-r--r--lib/ui/textinput.go2
-rw-r--r--widgets/account-wizard.go7
-rw-r--r--widgets/aerc.go6
4 files changed, 12 insertions, 12 deletions
diff --git a/config/config.go b/config/config.go
index c6136cfc..1019297b 100644
--- a/config/config.go
+++ b/config/config.go
@@ -100,7 +100,8 @@ func mapName(raw string) string {
func loadAccountConfig(path string) ([]AccountConfig, error) {
file, err := ini.Load(path)
if err != nil {
- return nil, err
+ // No config triggers account configuration wizard
+ return nil, nil
}
file.NameMapper = mapName
@@ -153,10 +154,6 @@ func loadAccountConfig(path string) ([]AccountConfig, error) {
accounts = append(accounts, account)
}
- if len(accounts) == 0 {
- err = errors.New("No accounts configured in accounts.conf")
- return nil, err
- }
return accounts, nil
}
@@ -359,7 +356,7 @@ func LoadConfig(root *string) (*AercConfig, error) {
func checkConfigPerms(filename string) error {
info, err := os.Stat(filename)
if err != nil {
- return err
+ return nil // disregard absent files
}
perms := info.Mode().Perm()
goPerms := perms >> 3
diff --git a/lib/ui/textinput.go b/lib/ui/textinput.go
index ce443c39..3e7c12f8 100644
--- a/lib/ui/textinput.go
+++ b/lib/ui/textinput.go
@@ -66,7 +66,7 @@ func (ti *TextInput) Draw(ctx *Context) {
ctx.Printf(0, 0, tcell.StyleDefault, "%s%s", ti.prompt, string(ti.text))
}
cells := runewidth.StringWidth(string(ti.text[:ti.index]) + ti.prompt)
- if cells != ti.cells && ti.focus {
+ if ti.focus {
ctx.SetCursor(cells, 0)
}
}
diff --git a/widgets/account-wizard.go b/widgets/account-wizard.go
index aa68ed79..6cd541e3 100644
--- a/widgets/account-wizard.go
+++ b/widgets/account-wizard.go
@@ -356,8 +356,8 @@ func NewAccountWizard(conf *config.AercConfig, aerc *Aerc) *AccountWizard {
"To add another account in the future, run ':new-account'."))
selecter = newSelecter([]string{
"Previous",
- "Finish",
"Finish & open tutorial",
+ "Finish",
}, 1).OnChoose(func(option string) {
switch option {
case "Previous":
@@ -436,11 +436,8 @@ func (wizard *AccountWizard) finish(tutorial bool) {
}
file, err := ini.Load(accountsConf)
- if err == os.ErrNotExist {
+ if err != nil {
file = ini.Empty()
- } else if err != nil {
- wizard.errorFor(nil, err)
- return
}
var sec *ini.Section
diff --git a/widgets/aerc.go b/widgets/aerc.go
index 484fd88e..3c6566de 100644
--- a/widgets/aerc.go
+++ b/widgets/aerc.go
@@ -62,6 +62,12 @@ func NewAerc(conf *config.AercConfig, logger *log.Logger,
tabs.Add(view, acct.Name)
}
+ if len(conf.Accounts) == 0 {
+ wizard := NewAccountWizard(aerc.Config(), aerc)
+ wizard.Focus(true)
+ aerc.NewTab(wizard, "New account")
+ }
+
return aerc
}