Introduce :new-account -t
Adding the [-t] temporary flag to the new-account command - when using -t a newly created account will not be stored into the accounts.conf Issue #134
This commit is contained in:
parent
7446a17830
commit
0771eaf24c
|
@ -4,6 +4,7 @@ import (
|
||||||
"errors"
|
"errors"
|
||||||
|
|
||||||
"git.sr.ht/~sircmpwn/aerc/widgets"
|
"git.sr.ht/~sircmpwn/aerc/widgets"
|
||||||
|
"git.sr.ht/~sircmpwn/getopt"
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
@ -11,10 +12,17 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func CommandNewAccount(aerc *widgets.Aerc, args []string) error {
|
func CommandNewAccount(aerc *widgets.Aerc, args []string) error {
|
||||||
if len(args) != 1 {
|
opts, _, err := getopt.Getopts(args[1:], "t")
|
||||||
return errors.New("Usage: new-account")
|
if err != nil {
|
||||||
|
return errors.New("Usage: new-account [-t]")
|
||||||
}
|
}
|
||||||
wizard := widgets.NewAccountWizard(aerc.Config(), aerc)
|
wizard := widgets.NewAccountWizard(aerc.Config(), aerc)
|
||||||
|
for _, opt := range opts {
|
||||||
|
switch opt.Option {
|
||||||
|
case 't':
|
||||||
|
wizard.ConfigureTemporaryAccount(true)
|
||||||
|
}
|
||||||
|
}
|
||||||
aerc.NewTab(wizard, "New account")
|
aerc.NewTab(wizard, "New account")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,12 +39,13 @@ const (
|
||||||
|
|
||||||
type AccountWizard struct {
|
type AccountWizard struct {
|
||||||
ui.Invalidatable
|
ui.Invalidatable
|
||||||
aerc *Aerc
|
aerc *Aerc
|
||||||
conf *config.AercConfig
|
conf *config.AercConfig
|
||||||
step int
|
step int
|
||||||
steps []*ui.Grid
|
steps []*ui.Grid
|
||||||
focus int
|
focus int
|
||||||
testing bool
|
temporary bool
|
||||||
|
testing bool
|
||||||
// CONFIGURE_BASICS
|
// CONFIGURE_BASICS
|
||||||
accountName *ui.TextInput
|
accountName *ui.TextInput
|
||||||
email *ui.TextInput
|
email *ui.TextInput
|
||||||
|
@ -76,6 +77,7 @@ func NewAccountWizard(conf *config.AercConfig, aerc *Aerc) *AccountWizard {
|
||||||
accountName: ui.NewTextInput("").Prompt("> "),
|
accountName: ui.NewTextInput("").Prompt("> "),
|
||||||
aerc: aerc,
|
aerc: aerc,
|
||||||
conf: conf,
|
conf: conf,
|
||||||
|
temporary: false,
|
||||||
copySent: true,
|
copySent: true,
|
||||||
email: ui.NewTextInput("").Prompt("> "),
|
email: ui.NewTextInput("").Prompt("> "),
|
||||||
fullName: ui.NewTextInput("").Prompt("> "),
|
fullName: ui.NewTextInput("").Prompt("> "),
|
||||||
|
@ -378,6 +380,10 @@ func NewAccountWizard(conf *config.AercConfig, aerc *Aerc) *AccountWizard {
|
||||||
return wizard
|
return wizard
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (wizard *AccountWizard) ConfigureTemporaryAccount(temporary bool) {
|
||||||
|
wizard.temporary = temporary
|
||||||
|
}
|
||||||
|
|
||||||
func (wizard *AccountWizard) errorFor(d ui.Interactive, err error) {
|
func (wizard *AccountWizard) errorFor(d ui.Interactive, err error) {
|
||||||
if d == nil {
|
if d == nil {
|
||||||
wizard.aerc.PushStatus(" "+err.Error(), 10*time.Second).
|
wizard.aerc.PushStatus(" "+err.Error(), 10*time.Second).
|
||||||
|
@ -459,14 +465,16 @@ func (wizard *AccountWizard) finish(tutorial bool) {
|
||||||
sec.NewKey("copy-to", "Sent")
|
sec.NewKey("copy-to", "Sent")
|
||||||
}
|
}
|
||||||
|
|
||||||
f, err := os.OpenFile(accountsConf, os.O_WRONLY|os.O_CREATE, 0600)
|
if !wizard.temporary {
|
||||||
if err != nil {
|
f, err := os.OpenFile(accountsConf, os.O_WRONLY|os.O_CREATE, 0600)
|
||||||
wizard.errorFor(nil, err)
|
if err != nil {
|
||||||
return
|
wizard.errorFor(nil, err)
|
||||||
}
|
return
|
||||||
if _, err = file.WriteTo(f); err != nil {
|
}
|
||||||
wizard.errorFor(nil, err)
|
if _, err = file.WriteTo(f); err != nil {
|
||||||
return
|
wizard.errorFor(nil, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
account := config.AccountConfig{
|
account := config.AccountConfig{
|
||||||
|
|
Loading…
Reference in New Issue