mirror of
https://github.com/tailscale/tailscale.git
synced 2025-04-30 12:42:31 +00:00

Updates tailscale/corp#25278 Adds definitions for new CLI commands getting added in v1.80. Refactors some pre-existing CLI commands within the `configure` tree to clean up code. Signed-off-by: Andrea Gottardo <andrea@gottardo.me>
46 lines
1.0 KiB
Go
46 lines
1.0 KiB
Go
// Copyright (c) Tailscale Inc & AUTHORS
|
|
// SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
package cli
|
|
|
|
import (
|
|
"flag"
|
|
"strings"
|
|
|
|
"github.com/peterbourgon/ff/v3/ffcli"
|
|
)
|
|
|
|
func configureCmd() *ffcli.Command {
|
|
return &ffcli.Command{
|
|
Name: "configure",
|
|
ShortUsage: "tailscale configure <subcommand>",
|
|
ShortHelp: "Configure the host to enable more Tailscale features",
|
|
LongHelp: strings.TrimSpace(`
|
|
The 'configure' set of commands are intended to provide a way to enable different
|
|
services on the host to use Tailscale in more ways.
|
|
`),
|
|
FlagSet: (func() *flag.FlagSet {
|
|
fs := newFlagSet("configure")
|
|
return fs
|
|
})(),
|
|
Subcommands: nonNilCmds(
|
|
configureKubeconfigCmd(),
|
|
synologyConfigureCmd(),
|
|
synologyConfigureCertCmd(),
|
|
ccall(maybeSysExtCmd),
|
|
ccall(maybeVPNConfigCmd),
|
|
),
|
|
}
|
|
}
|
|
|
|
// ccall calls the function f if it is non-nil, and returns its result.
|
|
//
|
|
// It returns the zero value of the type T if f is nil.
|
|
func ccall[T any](f func() T) T {
|
|
var zero T
|
|
if f == nil {
|
|
return zero
|
|
}
|
|
return f()
|
|
}
|