1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
package commands
import (
"fmt"
"git.sr.ht/~rjarry/aerc/commands/mode"
)
type Quit struct {
Force bool `opt:"-f" desc:"Force quit even if a task is pending."`
}
func init() {
Register(Quit{})
}
func (Quit) Description() string {
return "Exit aerc."
}
func (Quit) Context() CommandContext {
return GLOBAL
}
func (Quit) Aliases() []string {
return []string{"quit", "q", "exit"}
}
type ErrorExit int
func (err ErrorExit) Error() string {
return "exit"
}
func (q Quit) Execute(args []string) error {
if q.Force || mode.QuitAllowed() {
return ErrorExit(1)
}
return fmt.Errorf("A task is not done yet. Use -f to force an exit.")
}
|