From 548a5fff68a648a5e0b6fd909e3c21463addc8af Mon Sep 17 00:00:00 2001 From: Nicolai Dagestad Date: Sat, 1 Aug 2020 14:25:13 +0200 Subject: Set environment variables for the exec command --- commands/exec.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'commands/exec.go') diff --git a/commands/exec.go b/commands/exec.go index e15afbe9..771c528e 100644 --- a/commands/exec.go +++ b/commands/exec.go @@ -3,6 +3,7 @@ package commands import ( "errors" "fmt" + "os" "os/exec" "time" @@ -29,7 +30,22 @@ func (ExecCmd) Execute(aerc *widgets.Aerc, args []string) error { if len(args) < 2 { return errors.New("Usage: exec [cmd...]") } + cmd := exec.Command(args[1], args[2:]...) + env := os.Environ() + + switch view := aerc.SelectedTab().(type) { + case *widgets.AccountView: + env = append(env, fmt.Sprintf("account=%s", view.AccountConfig().Name)) + env = append(env, fmt.Sprintf("folder=%s", view.Directories().Selected())) + case *widgets.MessageViewer: + acct := view.SelectedAccount() + env = append(env, fmt.Sprintf("account=%s", acct.AccountConfig().Name)) + env = append(env, fmt.Sprintf("folder=%s", acct.Directories().Selected())) + } + + cmd.Env = env + go func() { err := cmd.Run() if err != nil { -- cgit