cmd/tailscale/cli: delete ActLikeCLI

It's since been rewritten in Swift.

 #cleanup

Change-Id: I0860d681e8728697804ce565f63c5613b8b1088c
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
pull/7148/head
Brad Fitzpatrick 2 years ago committed by Brad Fitzpatrick
parent 30e0156430
commit ca45fe2d46

@ -14,7 +14,6 @@ import (
"log" "log"
"os" "os"
"runtime" "runtime"
"strconv"
"strings" "strings"
"sync" "sync"
"text/tabwriter" "text/tabwriter"
@ -47,52 +46,6 @@ func outln(a ...any) {
fmt.Fprintln(Stdout, a...) fmt.Fprintln(Stdout, a...)
} }
// ActLikeCLI reports whether a GUI application should act like the
// CLI based on os.Args, GOOS, the context the process is running in
// (pty, parent PID), etc.
func ActLikeCLI() bool {
// This function is only used on macOS.
if runtime.GOOS != "darwin" {
return false
}
// Escape hatch to let people force running the macOS
// GUI Tailscale binary as the CLI.
if v, _ := strconv.ParseBool(os.Getenv("TAILSCALE_BE_CLI")); v {
return true
}
// If our parent is launchd, we're definitely not
// being run as a CLI.
if os.Getppid() == 1 {
return false
}
// Xcode adds the -NSDocumentRevisionsDebugMode flag on execution.
// If present, we are almost certainly being run as a GUI.
for _, arg := range os.Args {
if arg == "-NSDocumentRevisionsDebugMode" {
return false
}
}
// Looking at the environment of the GUI Tailscale app (ps eww
// $PID), empirically none of these environment variables are
// present. But all or some of these should be present with
// Terminal.all and bash or zsh.
for _, e := range []string{
"SHLVL",
"TERM",
"TERM_PROGRAM",
"PS1",
} {
if os.Getenv(e) != "" {
return true
}
}
return false
}
func newFlagSet(name string) *flag.FlagSet { func newFlagSet(name string) *flag.FlagSet {
onError := flag.ExitOnError onError := flag.ExitOnError
if runtime.GOOS == "js" { if runtime.GOOS == "js" {

Loading…
Cancel
Save