zenity/internal/osa/run_darwin.go

63 lines
1.0 KiB
Go
Raw Normal View History

2020-01-05 07:37:45 -05:00
package osa
import (
2020-01-06 19:57:00 -05:00
"os"
2020-01-05 07:37:45 -05:00
"os/exec"
"strings"
2020-01-06 19:57:00 -05:00
"syscall"
"github.com/ncruces/zenity/internal/cmd"
2020-01-05 07:37:45 -05:00
)
func Run(script string, data interface{}) ([]byte, error) {
var buf strings.Builder
err := scripts.ExecuteTemplate(&buf, script, data)
if err != nil {
return nil, err
}
res := buf.String()
2020-01-06 07:01:51 -05:00
res = res[len("<script>") : len(res)-len("\n</script>")]
2020-01-06 19:57:00 -05:00
if cmd.Command {
2020-01-09 06:17:39 -05:00
path, err := exec.LookPath("osascript")
2020-01-06 19:57:00 -05:00
if err == nil {
os.Stderr.Close()
2020-01-09 06:17:39 -05:00
syscall.Exec(path, []string{"osascript", "-l", "JavaScript", "-e", res}, nil)
2020-01-06 19:57:00 -05:00
}
}
2020-01-05 07:37:45 -05:00
cmd := exec.Command("osascript", "-l", "JavaScript")
cmd.Stdin = strings.NewReader(res)
return cmd.Output()
}
type File struct {
2020-01-12 18:09:11 -05:00
Operation string
Prompt string
Name string
Location string
Separator string
Type []string
Invisibles bool
Multiple bool
2020-01-05 07:37:45 -05:00
}
2020-01-18 23:28:06 -05:00
type Color struct {
Color []float32
}
2020-01-05 07:37:45 -05:00
type Msg struct {
2020-01-06 07:01:51 -05:00
Operation string
Text string
Message string
As string
Title string
Icon string
2020-01-06 19:57:00 -05:00
Extra string
2020-01-06 07:01:51 -05:00
Buttons []string
Cancel int
Default int
2020-01-05 07:37:45 -05:00
}