aboutsummaryrefslogtreecommitdiffstats
path: root/commands/account/export-mbox.go
diff options
context:
space:
mode:
authorRobin Jarry <robin@jarry.cc>2023-10-10 00:08:31 +0200
committerRobin Jarry <robin@jarry.cc>2023-10-10 11:38:01 +0200
commitbc176bd61ba726351a489cabf4da16a47dc5ec3b (patch)
treebbf06f731592d072f3d6f76f1648d61989375f2e /commands/account/export-mbox.go
parent598e4a5803578ab3e291f232d6aad31b4efd8ea4 (diff)
downloadaerc-bc176bd61ba726351a489cabf4da16a47dc5ec3b.tar.gz
app: export global functions
The single Aerc object is passed around in almost all command functions. This hinders readability. Store the single Aerc instance as a global variable. Export public functions from the app package to access methods of that object. Remove all explicit references to *app.Aerc and replace them with calls to these functions. For references to private/unexported fields and functions from within the app package, directly access the global aerc object. Signed-off-by: Robin Jarry <robin@jarry.cc> Acked-by: Moritz Poldrack <moritz@poldrack.dev>
Diffstat (limited to 'commands/account/export-mbox.go')
-rw-r--r--commands/account/export-mbox.go20
1 files changed, 10 insertions, 10 deletions
diff --git a/commands/account/export-mbox.go b/commands/account/export-mbox.go
index c227bdf9..e9a663c5 100644
--- a/commands/account/export-mbox.go
+++ b/commands/account/export-mbox.go
@@ -25,17 +25,17 @@ func (ExportMbox) Aliases() []string {
return []string{"export-mbox"}
}
-func (ExportMbox) Complete(aerc *app.Aerc, args []string) []string {
+func (ExportMbox) Complete(args []string) []string {
return commands.CompletePath(filepath.Join(args...))
}
-func (ExportMbox) Execute(aerc *app.Aerc, args []string) error {
+func (ExportMbox) Execute(args []string) error {
if len(args) != 2 {
return exportFolderUsage(args[0])
}
filename := args[1]
- acct := aerc.SelectedAccount()
+ acct := app.SelectedAccount()
if acct == nil {
return errors.New("No account selected")
}
@@ -53,15 +53,15 @@ func (ExportMbox) Execute(aerc *app.Aerc, args []string) error {
}
}
- aerc.PushStatus("Exporting to "+filename, 10*time.Second)
+ app.PushStatus("Exporting to "+filename, 10*time.Second)
// uids of messages to export
var uids []uint32
// check if something is marked - we export that then
- msgProvider, ok := aerc.SelectedTabContent().(app.ProvidesMessages)
+ msgProvider, ok := app.SelectedTabContent().(app.ProvidesMessages)
if !ok {
- msgProvider = aerc.SelectedAccount()
+ msgProvider = app.SelectedAccount()
}
if msgProvider != nil {
marked, err := msgProvider.MarkedMessages()
@@ -75,7 +75,7 @@ func (ExportMbox) Execute(aerc *app.Aerc, args []string) error {
file, err := os.Create(filename)
if err != nil {
log.Errorf("failed to create file: %v", err)
- aerc.PushError(err.Error())
+ app.PushError(err.Error())
return
}
defer file.Close()
@@ -99,7 +99,7 @@ func (ExportMbox) Execute(aerc *app.Aerc, args []string) error {
if retries > 10 {
errorMsg := fmt.Sprintf("too many retries: %d; stopping export", retries)
log.Errorf(errorMsg)
- aerc.PushError(args[0] + " " + errorMsg)
+ app.PushError(args[0] + " " + errorMsg)
break
}
sleeping := time.Duration(retries * 1e9 * 2)
@@ -116,7 +116,7 @@ func (ExportMbox) Execute(aerc *app.Aerc, args []string) error {
done <- true
case *types.Error:
log.Errorf("failed to fetch message: %v", msg.Error)
- aerc.PushError(args[0] + " error encountered: " + msg.Error.Error())
+ app.PushError(args[0] + " error encountered: " + msg.Error.Error())
done <- false
case *types.FullMessage:
mu.Lock()
@@ -140,7 +140,7 @@ func (ExportMbox) Execute(aerc *app.Aerc, args []string) error {
retries++
}
statusInfo := fmt.Sprintf("Exported %d of %d messages to %s.", ctr, total, filename)
- aerc.PushStatus(statusInfo, 10*time.Second)
+ app.PushStatus(statusInfo, 10*time.Second)
log.Debugf(statusInfo)
}()