Skip to content

Commit

Permalink
chore: use gh native browser launch code
Browse files Browse the repository at this point in the history
  • Loading branch information
wwsean08 authored and dlvhdr committed May 1, 2023
1 parent 41685ec commit a499a22
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 45 deletions.
2 changes: 2 additions & 0 deletions go.mod
Expand Up @@ -21,12 +21,14 @@ require (
github.com/alecthomas/chroma v0.10.0 // indirect
github.com/aymanbagabas/go-osc52 v1.0.3 // indirect
github.com/aymerick/douceur v0.2.0 // indirect
github.com/cli/browser v1.1.0 // indirect
github.com/cli/safeexec v1.0.0 // indirect
github.com/containerd/console v1.0.3 // indirect
github.com/dlclark/regexp2 v1.7.0 // indirect
github.com/go-logfmt/logfmt v0.6.0 // indirect
github.com/go-playground/locales v0.14.0 // indirect
github.com/go-playground/universal-translator v0.18.0 // indirect
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
github.com/gorilla/css v1.0.0 // indirect
github.com/henvic/httpretty v0.1.0 // indirect
github.com/inconshreveable/mousetrap v1.0.1 // indirect
Expand Down
5 changes: 5 additions & 0 deletions go.sum
Expand Up @@ -19,6 +19,8 @@ github.com/charmbracelet/lipgloss v0.6.0 h1:1StyZB9vBSOyuZxQUcUwGr17JmojPNm87ini
github.com/charmbracelet/lipgloss v0.6.0/go.mod h1:tHh2wr34xcHjC2HCXIlGSG1jaDF0S0atAUvBMP6Ppuk=
github.com/charmbracelet/log v0.1.1 h1:XBqTzrgT+7BenzFkb4DP3rt6VKLtx/zpgNMfJMAdbCc=
github.com/charmbracelet/log v0.1.1/go.mod h1:nbG+jJlMwbPM8v2wFyPG6qCr9flLQ1XTS+fhzUWd6JE=
github.com/cli/browser v1.1.0 h1:xOZBfkfY9L9vMBgqb1YwRirGu6QFaQ5dP/vXt5ENSOY=
github.com/cli/browser v1.1.0/go.mod h1:HKMQAt9t12kov91Mn7RfZxyJQQgWgyS/3SZswlZ5iTI=
github.com/cli/go-gh/v2 v2.0.0 h1:JAgQY7VNHletsO0Eqr+/PzF7fF5QEjhY2t2+Tev3vmk=
github.com/cli/go-gh/v2 v2.0.0/go.mod h1:2/ox3Dnc8wDBT5bnTAH1aKGy6Qt1ztlFBe10EufnvoA=
github.com/cli/safeexec v1.0.0 h1:0VngyaIyqACHdcMNWfo6+KdUYnqEr2Sg+bSP1pdF+dI=
Expand All @@ -45,6 +47,8 @@ github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/j
github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA=
github.com/go-playground/validator/v10 v10.11.0 h1:0W+xRM511GY47Yy3bZUbJVitCNg2BOGlCyvTqsp/xIw=
github.com/go-playground/validator/v10 v10.11.0/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU=
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
github.com/gorilla/css v1.0.0 h1:BQqNyPTi50JCFMTw/b67hByjMVXZRwGha6wxVGkeihY=
github.com/gorilla/css v1.0.0/go.mod h1:Dn721qIggHpt4+EFCcTLTU/vk5ySda2ReITrtgBl60c=
github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542 h1:2VTzZjLZBgl62/EtslCrtky5vbi9dd7HrQPQIx6wqiw=
Expand Down Expand Up @@ -146,6 +150,7 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210319071255-635bc2c9138d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
Expand Down
9 changes: 7 additions & 2 deletions ui/ui.go
Expand Up @@ -2,6 +2,7 @@ package ui

import (
"fmt"
"os"
"sort"
"strings"
"time"
Expand All @@ -12,6 +13,7 @@ import (
tea "github.com/charmbracelet/bubbletea"
"github.com/charmbracelet/lipgloss"
log "github.com/charmbracelet/log"
"github.com/cli/go-gh/v2/pkg/browser"
"github.com/dlvhdr/gh-dash/config"
"github.com/dlvhdr/gh-dash/data"
"github.com/dlvhdr/gh-dash/ui/common"
Expand All @@ -27,7 +29,6 @@ import (
"github.com/dlvhdr/gh-dash/ui/context"
"github.com/dlvhdr/gh-dash/ui/keys"
"github.com/dlvhdr/gh-dash/ui/theme"
"github.com/dlvhdr/gh-dash/utils"
)

type Model struct {
Expand Down Expand Up @@ -171,8 +172,12 @@ func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {

case key.Matches(msg, m.keys.OpenGithub):
var currRow = m.getCurrRowData()
b := browser.New("", os.Stdout, os.Stdin)
if currRow != nil {
utils.OpenBrowser(currRow.GetUrl())
err := b.Browse(currRow.GetUrl())
if err != nil {
log.Fatal(err)
}
}

case key.Matches(msg, m.keys.Refresh):
Expand Down
43 changes: 0 additions & 43 deletions utils/utils.go
@@ -1,15 +1,9 @@
package utils

import (
"fmt"
"math"
"os/exec"
"runtime"
"strconv"
"strings"
"time"

log "github.com/charmbracelet/log"
)

const (
Expand All @@ -32,43 +26,6 @@ func Min(a, b int) int {
return b
}

func openInLinuxBrowser(url string) error {
var err error
providers := []string{"xdg-open", "x-www-browser", "www-browser", "wslview"}

for _, provider := range providers {
if _, err = exec.LookPath(provider); err == nil {
err = exec.Command(provider, url).Start()
if err != nil {
return err
}
return nil
}
}

return &exec.Error{Name: strings.Join(providers, ","), Err: exec.ErrNotFound}
}

func OpenBrowser(url string) {
var err error

switch runtime.GOOS {
case "linux":
err = openInLinuxBrowser(url)
case "windows":
err = exec.Command("rundll32", "url.dll,FileProtocolHandler", url).Start()
case "darwin":
err = exec.Command("open", url).Start()
case "android":
err = exec.Command("termux-open-url", url).Start()
default:
err = fmt.Errorf("unsupported platform")
}
if err != nil {
log.Fatal(err)
}
}

func TimeElapsed(then time.Time) string {
var parts []string
var text string
Expand Down

0 comments on commit a499a22

Please sign in to comment.