2019-07-03 00:21:34 +02:00
|
|
|
package lib
|
|
|
|
|
|
|
|
import (
|
2022-09-30 10:52:49 +02:00
|
|
|
"fmt"
|
2019-07-03 00:21:34 +02:00
|
|
|
"os/exec"
|
2021-01-30 11:33:31 +01:00
|
|
|
"runtime"
|
2022-03-22 09:52:27 +01:00
|
|
|
|
|
|
|
"git.sr.ht/~rjarry/aerc/logging"
|
2019-07-03 00:21:34 +02:00
|
|
|
)
|
|
|
|
|
2022-09-30 10:52:49 +02:00
|
|
|
func XDGOpen(uri string) error {
|
|
|
|
openBin := "xdg-open"
|
2021-01-30 11:33:31 +01:00
|
|
|
if runtime.GOOS == "darwin" {
|
|
|
|
openBin = "open"
|
|
|
|
}
|
2022-09-30 10:52:49 +02:00
|
|
|
args := []string{openBin, uri}
|
|
|
|
logging.Infof("running command: %v", args)
|
|
|
|
cmd := exec.Command(args[0], args[1:]...)
|
|
|
|
out, err := cmd.CombinedOutput()
|
|
|
|
logging.Debugf("command: %v exited. err=%v out=%s", args, err, out)
|
2021-01-30 11:33:31 +01:00
|
|
|
if err != nil {
|
2022-09-30 10:52:49 +02:00
|
|
|
return fmt.Errorf("%v: %w", args, err)
|
2021-01-30 11:33:31 +01:00
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|