| 2287 | } |
| 2288 | |
| 2289 | func activeSafariURL() (string, error) { |
| 2290 | if _, err := exec.LookPath("osascript"); err != nil { |
| 2291 | return "", fmt.Errorf("osascript not found in PATH: %w", err) |
| 2292 | } |
| 2293 | |
| 2294 | script := `tell application "Safari" |
| 2295 | if it is running then |
| 2296 | if exists front document then |
| 2297 | return URL of front document |
| 2298 | end if |
| 2299 | end if |
| 2300 | end tell` |
| 2301 | cmd := exec.Command("osascript", "-e", script) |
| 2302 | output, err := cmd.Output() |
| 2303 | if err != nil { |
| 2304 | return "", fmt.Errorf("osascript Safari URL: %w", err) |
| 2305 | } |
| 2306 | |
| 2307 | url := strings.TrimSpace(string(output)) |
| 2308 | if url == "" { |
| 2309 | return "", fmt.Errorf("Safari has no active tab URL") |
| 2310 | } |
| 2311 | |
| 2312 | return url, nil |
| 2313 | } |
| 2314 | |
| 2315 | func runDeploy(ctx *snap.Context) error { |
| 2316 | if ctx.NArgs() != 0 { |