From 1dc90404f32e9f4437e188109622dc598cc185cb Mon Sep 17 00:00:00 2001 From: Denton Gentry Date: Mon, 17 May 2021 08:15:50 -0700 Subject: [PATCH] cmd/tailscale{,d}: combine into a single binary 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 --- cmd/{tailscale => tailscaled}/cli/bugreport.go | 0 cmd/{tailscale => tailscaled}/cli/cli.go | 0 cmd/{tailscale => tailscaled}/cli/cli_test.go | 0 cmd/{tailscale => tailscaled}/cli/debug.go | 0 cmd/{tailscale => tailscaled}/cli/down.go | 0 cmd/{tailscale => tailscaled}/cli/file.go | 0 cmd/{tailscale => tailscaled}/cli/ip.go | 0 cmd/{tailscale => tailscaled}/cli/logout.go | 0 cmd/{tailscale => tailscaled}/cli/netcheck.go | 0 cmd/{tailscale => tailscaled}/cli/ping.go | 0 cmd/{tailscale => tailscaled}/cli/status.go | 0 cmd/{tailscale => tailscaled}/cli/up.go | 0 cmd/{tailscale => tailscaled}/cli/version.go | 0 cmd/{tailscale => tailscaled}/cli/web.css | 0 cmd/{tailscale => tailscaled}/cli/web.go | 0 cmd/{tailscale => tailscaled}/cli/web.html | 0 cmd/tailscaled/main.go | 16 ++++++++++++++++ cmd/{tailscale => tailscaled}/tailscale.go | 6 +++--- cmd/tailscaled/tailscaled.go | 2 +- 19 files changed, 20 insertions(+), 4 deletions(-) rename cmd/{tailscale => tailscaled}/cli/bugreport.go (100%) rename cmd/{tailscale => tailscaled}/cli/cli.go (100%) rename cmd/{tailscale => tailscaled}/cli/cli_test.go (100%) rename cmd/{tailscale => tailscaled}/cli/debug.go (100%) rename cmd/{tailscale => tailscaled}/cli/down.go (100%) rename cmd/{tailscale => tailscaled}/cli/file.go (100%) rename cmd/{tailscale => tailscaled}/cli/ip.go (100%) rename cmd/{tailscale => tailscaled}/cli/logout.go (100%) rename cmd/{tailscale => tailscaled}/cli/netcheck.go (100%) rename cmd/{tailscale => tailscaled}/cli/ping.go (100%) rename cmd/{tailscale => tailscaled}/cli/status.go (100%) rename cmd/{tailscale => tailscaled}/cli/up.go (100%) rename cmd/{tailscale => tailscaled}/cli/version.go (100%) rename cmd/{tailscale => tailscaled}/cli/web.css (100%) rename cmd/{tailscale => tailscaled}/cli/web.go (100%) rename cmd/{tailscale => tailscaled}/cli/web.html (100%) create mode 100644 cmd/tailscaled/main.go rename cmd/{tailscale => tailscaled}/tailscale.go (83%) diff --git a/cmd/tailscale/cli/bugreport.go b/cmd/tailscaled/cli/bugreport.go similarity index 100% rename from cmd/tailscale/cli/bugreport.go rename to cmd/tailscaled/cli/bugreport.go diff --git a/cmd/tailscale/cli/cli.go b/cmd/tailscaled/cli/cli.go similarity index 100% rename from cmd/tailscale/cli/cli.go rename to cmd/tailscaled/cli/cli.go diff --git a/cmd/tailscale/cli/cli_test.go b/cmd/tailscaled/cli/cli_test.go similarity index 100% rename from cmd/tailscale/cli/cli_test.go rename to cmd/tailscaled/cli/cli_test.go diff --git a/cmd/tailscale/cli/debug.go b/cmd/tailscaled/cli/debug.go similarity index 100% rename from cmd/tailscale/cli/debug.go rename to cmd/tailscaled/cli/debug.go diff --git a/cmd/tailscale/cli/down.go b/cmd/tailscaled/cli/down.go similarity index 100% rename from cmd/tailscale/cli/down.go rename to cmd/tailscaled/cli/down.go diff --git a/cmd/tailscale/cli/file.go b/cmd/tailscaled/cli/file.go similarity index 100% rename from cmd/tailscale/cli/file.go rename to cmd/tailscaled/cli/file.go diff --git a/cmd/tailscale/cli/ip.go b/cmd/tailscaled/cli/ip.go similarity index 100% rename from cmd/tailscale/cli/ip.go rename to cmd/tailscaled/cli/ip.go diff --git a/cmd/tailscale/cli/logout.go b/cmd/tailscaled/cli/logout.go similarity index 100% rename from cmd/tailscale/cli/logout.go rename to cmd/tailscaled/cli/logout.go diff --git a/cmd/tailscale/cli/netcheck.go b/cmd/tailscaled/cli/netcheck.go similarity index 100% rename from cmd/tailscale/cli/netcheck.go rename to cmd/tailscaled/cli/netcheck.go diff --git a/cmd/tailscale/cli/ping.go b/cmd/tailscaled/cli/ping.go similarity index 100% rename from cmd/tailscale/cli/ping.go rename to cmd/tailscaled/cli/ping.go diff --git a/cmd/tailscale/cli/status.go b/cmd/tailscaled/cli/status.go similarity index 100% rename from cmd/tailscale/cli/status.go rename to cmd/tailscaled/cli/status.go diff --git a/cmd/tailscale/cli/up.go b/cmd/tailscaled/cli/up.go similarity index 100% rename from cmd/tailscale/cli/up.go rename to cmd/tailscaled/cli/up.go diff --git a/cmd/tailscale/cli/version.go b/cmd/tailscaled/cli/version.go similarity index 100% rename from cmd/tailscale/cli/version.go rename to cmd/tailscaled/cli/version.go diff --git a/cmd/tailscale/cli/web.css b/cmd/tailscaled/cli/web.css similarity index 100% rename from cmd/tailscale/cli/web.css rename to cmd/tailscaled/cli/web.css diff --git a/cmd/tailscale/cli/web.go b/cmd/tailscaled/cli/web.go similarity index 100% rename from cmd/tailscale/cli/web.go rename to cmd/tailscaled/cli/web.go diff --git a/cmd/tailscale/cli/web.html b/cmd/tailscaled/cli/web.html similarity index 100% rename from cmd/tailscale/cli/web.html rename to cmd/tailscaled/cli/web.html diff --git a/cmd/tailscaled/main.go b/cmd/tailscaled/main.go new file mode 100644 index 000000000..5b37f08dc --- /dev/null +++ b/cmd/tailscaled/main.go @@ -0,0 +1,16 @@ +package main + +import ( + "os" + "strings" +) + +func main() { + if strings.HasSuffix(os.Args[0], "tailscaled") { + tailscaled_main() + } else if strings.HasSuffix(os.Args[0], "tailscale") { + tailscale_main() + } else { + panic(os.Args[0]) + } +} diff --git a/cmd/tailscale/tailscale.go b/cmd/tailscaled/tailscale.go similarity index 83% rename from cmd/tailscale/tailscale.go rename to cmd/tailscaled/tailscale.go index c69c86f64..94a3563a0 100644 --- a/cmd/tailscale/tailscale.go +++ b/cmd/tailscaled/tailscale.go @@ -4,7 +4,7 @@ // The tailscale command is the Tailscale command-line client. It interacts // with the tailscaled node agent. -package main // import "tailscale.com/cmd/tailscale" +package main // import "tailscale.com/cmd/tailscaled" import ( "fmt" @@ -12,10 +12,10 @@ import ( "path/filepath" "strings" - "tailscale.com/cmd/tailscale/cli" + "tailscale.com/cmd/tailscaled/cli" ) -func main() { +func tailscale_main() { args := os.Args[1:] if name, _ := os.Executable(); strings.HasSuffix(filepath.Base(name), ".cgi") { args = []string{"web", "-cgi"} diff --git a/cmd/tailscaled/tailscaled.go b/cmd/tailscaled/tailscaled.go index 63296204d..1adf9a01e 100644 --- a/cmd/tailscaled/tailscaled.go +++ b/cmd/tailscaled/tailscaled.go @@ -101,7 +101,7 @@ var subCommands = map[string]*func([]string) error{ "debug": &debugModeFunc, } -func main() { +func tailscaled_main() { // We aren't very performance sensitive, and the parts that are // performance sensitive (wireguard) try hard not to do any memory // allocations. So let's be aggressive about garbage collection,