mirror of
https://github.com/tailscale/tailscale.git
synced 2025-02-22 04:48:39 +00:00

This pulls out the Wake-on-LAN (WoL) code out into its own package (feature/wakeonlan) that registers itself with various new hooks around tailscaled. Then a new build tag (ts_omit_wakeonlan) causes the package to not even be linked in the binary. Ohter new packages include: * feature: to just record which features are loaded. Future: dependencies between features. * feature/condregister: the package with all the build tags that tailscaled, tsnet, and the Tailscale Xcode project extension can empty (underscore) import to load features as a function of the defined build tags. Future commits will move of our "ts_omit_foo" build tags into this style. Updates #12614 Change-Id: I9c5378dafb1113b62b816aabef02714db3fc9c4a Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
16 lines
398 B
Go
16 lines
398 B
Go
// Copyright (c) Tailscale Inc & AUTHORS
|
|
// SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
// Package feature tracks which features are linked into the binary.
|
|
package feature
|
|
|
|
var in = map[string]bool{}
|
|
|
|
// Register notes that the named feature is linked into the binary.
|
|
func Register(name string) {
|
|
if _, ok := in[name]; ok {
|
|
panic("duplicate feature registration for " + name)
|
|
}
|
|
in[name] = true
|
|
}
|