mirror of
https://github.com/tailscale/tailscale.git
synced 2024-11-25 19:15:34 +00:00
cmd/addlicense: add command to add licenseheaders to generated code
And use it to make our stringer invocations match the existing code. Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
This commit is contained in:
parent
0ec9040c5e
commit
4dbbd0aa4a
77
cmd/addlicense/main.go
Normal file
77
cmd/addlicense/main.go
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
// Copyright (c) 2021 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.
|
||||||
|
|
||||||
|
// Program addlicense adds a license header to a file.
|
||||||
|
// It is intended for use with 'go generate',
|
||||||
|
// so it has a slightly weird usage.
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"flag"
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"os/exec"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
year = flag.Int("year", 0, "copyright year")
|
||||||
|
file = flag.String("file", "", "file to modify")
|
||||||
|
)
|
||||||
|
|
||||||
|
func usage() {
|
||||||
|
fmt.Fprintf(os.Stderr, `
|
||||||
|
usage: addlicense -year YEAR -file FILE <subcommand args...>
|
||||||
|
`[1:])
|
||||||
|
|
||||||
|
flag.PrintDefaults()
|
||||||
|
fmt.Fprintf(os.Stderr, `
|
||||||
|
addlicense adds a Tailscale license to the beginning of file,
|
||||||
|
using year as the copyright year.
|
||||||
|
|
||||||
|
It is intended for use with 'go generate', so it also runs a subcommand,
|
||||||
|
which presumably creates the file.
|
||||||
|
|
||||||
|
Sample usage:
|
||||||
|
|
||||||
|
addlicense -year 2021 -file pull_strings.go stringer -type=pull
|
||||||
|
`[1:])
|
||||||
|
os.Exit(2)
|
||||||
|
}
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
flag.Usage = usage
|
||||||
|
flag.Parse()
|
||||||
|
if len(flag.Args()) == 0 {
|
||||||
|
flag.Usage()
|
||||||
|
}
|
||||||
|
cmd := exec.Command(flag.Arg(0), flag.Args()[1:]...)
|
||||||
|
cmd.Stdout = os.Stdout
|
||||||
|
cmd.Stderr = os.Stderr
|
||||||
|
err := cmd.Run()
|
||||||
|
check(err)
|
||||||
|
b, err := os.ReadFile(*file)
|
||||||
|
check(err)
|
||||||
|
f, err := os.OpenFile(*file, os.O_TRUNC|os.O_WRONLY, 0644)
|
||||||
|
check(err)
|
||||||
|
_, err = fmt.Fprintf(f, license, *year)
|
||||||
|
check(err)
|
||||||
|
_, err = f.Write(b)
|
||||||
|
check(err)
|
||||||
|
err = f.Close()
|
||||||
|
check(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
func check(err error) {
|
||||||
|
if err != nil {
|
||||||
|
fmt.Fprintln(os.Stderr, err)
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var license = `
|
||||||
|
// Copyright (c) %d 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.
|
||||||
|
|
||||||
|
`[1:]
|
@ -698,7 +698,7 @@ func (c *sclient) handleFrameSendPacket(ft frameType, fl uint32) error {
|
|||||||
// dropReason is why we dropped a DERP frame.
|
// dropReason is why we dropped a DERP frame.
|
||||||
type dropReason int
|
type dropReason int
|
||||||
|
|
||||||
//go:generate stringer -type=dropReason -trimprefix=dropReason
|
//go:generate go run tailscale.com/cmd/addlicense -year 2021 -file dropreason_string.go stringer -type=dropReason -trimprefix=dropReason
|
||||||
|
|
||||||
const (
|
const (
|
||||||
dropReasonUnknownDest dropReason = iota // unknown destination pubkey
|
dropReasonUnknownDest dropReason = iota // unknown destination pubkey
|
||||||
|
@ -3489,7 +3489,7 @@ func (de *discoEndpoint) sendDiscoPing(ep netaddr.IPPort, txid stun.TxID, logLev
|
|||||||
// discoPingPurpose is the reason why a discovery ping message was sent.
|
// discoPingPurpose is the reason why a discovery ping message was sent.
|
||||||
type discoPingPurpose int
|
type discoPingPurpose int
|
||||||
|
|
||||||
//go:generate stringer -type=discoPingPurpose -trimprefix=ping
|
//go:generate go run tailscale.com/cmd/addlicense -year 2020 -file discopingpurpose_string.go stringer -type=discoPingPurpose -trimprefix=ping
|
||||||
const (
|
const (
|
||||||
// pingDiscovery means that purpose of a ping was to see if a
|
// pingDiscovery means that purpose of a ping was to see if a
|
||||||
// path was valid.
|
// path was valid.
|
||||||
|
Loading…
Reference in New Issue
Block a user