aerc

Working clone of aerc-mail.org
git clone git://git.danielmoch.com/aerc.git
Log | Files | Refs | README | LICENSE

commit 9b19e3ad054132fdab4062915f70122faaa5c163
parent 1a45b793c7d1d59e209be3eb4b4f794a78085e5d
Author: Drew DeVault <sir@cmpwn.com>
Date:   Wed, 22 May 2019 11:35:55 -0400

Show account wizard if no accounts configured

Diffstat:
Mconfig/config.go | 9+++------
Mlib/ui/textinput.go | 2+-
Mwidgets/account-wizard.go | 7++-----
Mwidgets/aerc.go | 6++++++
4 files changed, 12 insertions(+), 12 deletions(-)

diff --git 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 @@ -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 @@ -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 @@ -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 }