check / check (push) Canceled after 0s
cmd/netwatch-server/main.go parsed the command line, ran the check-cidr and prepare-data-dir subcommands and built the fx application itself; the Go style guide puts all of that in internal/ or pkg/. The new package internal/cli does it, with the same arguments, messages and exit codes. main() is now os.Exit(cli.Main(os.Stderr, Appname, Version, os.Args[1:], cli.RunServer)): Main takes the writer for errors and the function that runs the server, so its tests give it a buffer and a function that fails them. Appname and Version stay in main, where the build sets Version. The function behind prepare-data-dir also takes the volume and the user's name, so its own tests give it a temporary directory and the user they run as. Model: opus-5-5
28 lines
637 B
Go
28 lines
637 B
Go
// Package globals provides build-time variables injected via
|
|
// ldflags and made available through dependency injection.
|
|
package globals
|
|
|
|
import "go.uber.org/fx"
|
|
|
|
//nolint:gochecknoglobals // set by cli.RunServer before fx starts
|
|
var (
|
|
// Appname is the application name.
|
|
Appname string
|
|
// Version is the git version tag.
|
|
Version string
|
|
)
|
|
|
|
// Globals holds build-time metadata for the application.
|
|
type Globals struct {
|
|
Appname string
|
|
Version string
|
|
}
|
|
|
|
// New creates a Globals instance from package-level variables.
|
|
func New(_ fx.Lifecycle) (*Globals, error) {
|
|
return &Globals{
|
|
Appname: Appname,
|
|
Version: Version,
|
|
}, nil
|
|
}
|