Skip to content

Commit

Permalink
tui: fully working spawner
Browse files Browse the repository at this point in the history
  • Loading branch information
azimut committed Apr 26, 2023
1 parent 9c8d031 commit 9f9dfb3
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 7 deletions.
43 changes: 43 additions & 0 deletions internal/tui/spawner.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package tui

import (
"os"
"os/exec"

tea "github.com/charmbracelet/bubbletea"
)

type commandFinishedMsg struct{ err error }

func doSpawn(url string) (tea.Cmd, error) {
spawner, err := getSpawner()
if err != nil {
return nil, err
}
cmd := exec.Command(spawner, url)
// if err = cmd.Start(); err != nil {
// return nil, err
// }
// _, err = cmd.Process.Wait()
// if err != nil {
// return nil, err
// }
return tea.ExecProcess(cmd, func(err error) tea.Msg {
return commandFinishedMsg{err}
}), nil

}

// getSpawner returns the absolute path of the binary handles spawing
func getSpawner() (string, error) {
spawner := os.Getenv("SPAWNER")
if spawner == "" {
spawner = "xdg-open"
}

binary, err := exec.LookPath(spawner)
if err != nil {
return "", err
}
return binary, nil
}
9 changes: 2 additions & 7 deletions internal/tui/tui.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package tui
import (
"fmt"
"os"
"os/exec"

"github.com/charmbracelet/bubbles/key"
"github.com/charmbracelet/bubbles/list"
Expand Down Expand Up @@ -113,15 +112,11 @@ func (m Model) Update(msg tea.Msg) (Model, tea.Cmd) {
case key.Matches(msg, DefaultKeyMap.LinksOpen):
i, ok := m.list.SelectedItem().(item)
if ok {
binary, lookErr := exec.LookPath("weblauncher")
if lookErr != nil {
panic(lookErr)
}
cmd := exec.Command(binary, string(i))
err := cmd.Start()
cmd, err := doSpawn(string(i))
if err != nil {
panic(err)
}
return m, cmd
}
}
} else {
Expand Down

0 comments on commit 9f9dfb3

Please sign in to comment.