mirror of
https://github.com/netbirdio/netbird.git
synced 2026-03-31 06:34:14 -04:00
72 lines
1.4 KiB
Go
72 lines
1.4 KiB
Go
package util
|
|
|
|
import (
|
|
"os"
|
|
"os/exec"
|
|
|
|
"github.com/skratchdot/open-golang/open"
|
|
)
|
|
|
|
// OpenBrowser opens the URL in a browser, respecting the BROWSER environment variable.
|
|
func OpenBrowser(url string) error {
|
|
if browser := os.Getenv("BROWSER"); browser != "" {
|
|
return exec.Command(browser, url).Start()
|
|
}
|
|
return open.Run(url)
|
|
}
|
|
|
|
// SliceDiff returns the elements in slice `x` that are not in slice `y`
|
|
func SliceDiff(x, y []string) []string {
|
|
mapY := make(map[string]struct{}, len(y))
|
|
for _, val := range y {
|
|
mapY[val] = struct{}{}
|
|
}
|
|
var diff []string
|
|
for _, val := range x {
|
|
if _, found := mapY[val]; !found {
|
|
diff = append(diff, val)
|
|
}
|
|
}
|
|
return diff
|
|
}
|
|
|
|
// FileExists returns true if specified file exists
|
|
func FileExists(path string) bool {
|
|
_, err := os.Stat(path)
|
|
return err == nil
|
|
}
|
|
|
|
/// Bool helpers
|
|
|
|
// True returns a *bool whose underlying value is true.
|
|
func True() *bool {
|
|
t := true
|
|
return &t
|
|
}
|
|
|
|
// False returns a *bool whose underlying value is false.
|
|
func False() *bool {
|
|
t := false
|
|
return &t
|
|
}
|
|
|
|
// Return bool representation if the bool pointer is non-nil, otherwise returns false
|
|
func ReturnBoolWithDefaultFalse(b *bool) bool {
|
|
if b != nil {
|
|
return *b
|
|
} else {
|
|
return false
|
|
}
|
|
|
|
}
|
|
|
|
// Return bool representation if the bool pointer is non-nil, otherwise returns true
|
|
func ReturnBoolWithDefaultTrue(b *bool) bool {
|
|
if b != nil {
|
|
return *b
|
|
} else {
|
|
return true
|
|
}
|
|
|
|
}
|