1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
diff --git a/main.go b/main.go
index 17e84304237551b18683def41cfde7c49b4f76b0..81e7dfdc62559423df1f3525656c218b012a3cc0 100644
--- a/main.go
+++ b/main.go
@@ -3,7 +3,6 @@
import (
_ "embed"
"encoding/json"
- "flag"
"fmt"
"log/slog"
"net/http"
@@ -19,28 +18,9 @@ )
//go:embed static/index.html
var indexHTML []byte
-
-type args struct {
- hostname string
- dataDir string
- authKey string
- verbose bool
-}
func maine() error {
- args := args{
- hostname: "cfg",
- dataDir: ".tsnet",
- }
- fs := flag.NewFlagSet("cfg-playground", flag.ExitOnError)
- fs.StringVar(&args.hostname, "hostname", args.hostname, "Tailnet hostname")
- fs.StringVar(&args.hostname, "h", args.hostname, "--hostname")
- fs.StringVar(&args.dataDir, "data-dir", args.dataDir, "tsnet data directory")
- fs.StringVar(&args.dataDir, "d", args.dataDir, "--data-dir")
- fs.StringVar(&args.authKey, "auth-key", args.authKey, "tsnet auth key")
- fs.StringVar(&args.authKey, "a", args.authKey, "--auth-key")
- fs.BoolVar(&args.verbose, "verbose", args.verbose, "Log verbosely")
- fs.BoolVar(&args.verbose, "v", args.verbose, "--verbose")
+ args, fs := Flags()
fs.String("config", "cfg.jsonnet", "Config file")
if err := ff.Parse(fs, os.Args[1:],
ff.WithEnvVarPrefix("CFG_PLAYGROUND"),
@@ -51,12 +31,12 @@ ); err != nil {
return err
}
- if args.verbose {
+ if args.Verbose {
slog.SetLogLoggerLevel(slog.LevelDebug)
}
- if args.authKey != "" {
- os.Setenv("TS_AUTHKEY", args.authKey)
+ if args.AuthKey != "" {
+ os.Setenv("TS_AUTHKEY", args.AuthKey)
}
mux := http.NewServeMux()
@@ -68,8 +48,8 @@ tr := tailroute.Router{
Tailnet: mux,
}
go func() {
- fmt.Printf("Tailnet listening on http://%s\n", args.hostname)
- if err := tr.Serve(args.hostname, args.dataDir); err != nil {
+ fmt.Printf("Tailnet listening on http://%s\n", args.Hostname)
+ if err := tr.Serve(args.Hostname, args.DataDir); err != nil {
panic(err)
}
}()
|