diff options
| author | Denton Gentry <dgentry@tailscale.com> | 2021-05-17 08:15:50 -0700 |
|---|---|---|
| committer | Denton Gentry <dgentry@tailscale.com> | 2021-05-17 08:16:50 -0700 |
| commit | 1dc90404f32e9f4437e188109622dc598cc185cb (patch) | |
| tree | 0b853c62f1b28589de037cd975f95f3e64e4e7f3 /cmd/tailscaled/cli/down.go | |
| parent | 25df067dd0c854eebcd2841b82ad92ebb1d77165 (diff) | |
| download | tailscale-onebinary.tar.xz tailscale-onebinary.zip | |
cmd/tailscale{,d}: combine into a single binaryonebinary
To reduce size, combine tailscaled and tailscale into a single
binary which will figure out what it should do based on argv[0].
Signed-off-by: Denton Gentry <dgentry@tailscale.com>
Diffstat (limited to 'cmd/tailscaled/cli/down.go')
| -rw-r--r-- | cmd/tailscaled/cli/down.go | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/cmd/tailscaled/cli/down.go b/cmd/tailscaled/cli/down.go new file mode 100644 index 000000000..c0a9034fe --- /dev/null +++ b/cmd/tailscaled/cli/down.go @@ -0,0 +1,46 @@ +// Copyright (c) 2020 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. + +package cli + +import ( + "context" + "fmt" + "log" + "os" + + "github.com/peterbourgon/ff/v2/ffcli" + "tailscale.com/client/tailscale" + "tailscale.com/ipn" +) + +var downCmd = &ffcli.Command{ + Name: "down", + ShortUsage: "down", + ShortHelp: "Disconnect from Tailscale", + + Exec: runDown, +} + +func runDown(ctx context.Context, args []string) error { + if len(args) > 0 { + log.Fatalf("too many non-flag arguments: %q", args) + } + + st, err := tailscale.Status(ctx) + if err != nil { + return fmt.Errorf("error fetching current status: %w", err) + } + if st.BackendState == "Stopped" { + fmt.Fprintf(os.Stderr, "Tailscale was already stopped.\n") + return nil + } + _, err = tailscale.EditPrefs(ctx, &ipn.MaskedPrefs{ + Prefs: ipn.Prefs{ + WantRunning: false, + }, + WantRunningSet: true, + }) + return err +} |
