envknob: add GOOS func
Centralize the fake GOOS stuff, start to use it more. To be used more in the future. Change-Id: Iabacfbeaf5fca0b53bf4d5dbcdc0367f05a205f9 Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
committed by
Brad Fitzpatrick
parent
6e6f27dd21
commit
4d3713f631
@@ -277,11 +277,9 @@ func SSHPolicyFile() string { return String("TS_DEBUG_SSH_POLICY_FILE") }
|
||||
// SSHIgnoreTailnetPolicy is whether to ignore the Tailnet SSH policy for development.
|
||||
func SSHIgnoreTailnetPolicy() bool { return Bool("TS_DEBUG_SSH_IGNORE_TAILNET_POLICY") }
|
||||
|
||||
|
||||
// TKASkipSignatureCheck is whether to skip node-key signature checking for development.
|
||||
func TKASkipSignatureCheck() bool { return Bool("TS_UNSAFE_SKIP_NKS_VERIFICATION") }
|
||||
|
||||
|
||||
// NoLogsNoSupport reports whether the client's opted out of log uploads and
|
||||
// technical support.
|
||||
func NoLogsNoSupport() bool {
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
// Copyright (c) 2022 Tailscale Inc & AUTHORS All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
//go:build ts_not_in_tests
|
||||
|
||||
package envknob
|
||||
|
||||
import "runtime"
|
||||
|
||||
func GOOS() string {
|
||||
// When the "ts_not_in_tests" build tag is used, we define this func to just
|
||||
// return a simple constant so callers optimize just as if the knob were not
|
||||
// present. We can then build production/optimized builds with the
|
||||
// "ts_not_in_tests" build tag.
|
||||
return runtime.GOOS
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
// Copyright (c) 2022 Tailscale Inc & AUTHORS All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
//go:build !ts_not_in_tests
|
||||
|
||||
package envknob
|
||||
|
||||
import "runtime"
|
||||
|
||||
// GOOS reports the effective runtime.GOOS to run as.
|
||||
//
|
||||
// In practice this returns just runtime.GOOS, unless overridden by
|
||||
// test TS_DEBUG_FAKE_GOOS.
|
||||
//
|
||||
// This allows changing OS-specific stuff like the IPN server behavior
|
||||
// for tests so we can e.g. test Windows-specific behaviors on Linux.
|
||||
// This isn't universally used.
|
||||
func GOOS() string {
|
||||
if v := String("TS_DEBUG_FAKE_GOOS"); v != "" {
|
||||
return v
|
||||
}
|
||||
return runtime.GOOS
|
||||
}
|
||||
Reference in New Issue
Block a user