Skip to content

Commit 31494fb

Browse files
committed
log: propagate to deeper structures
To increase the amount of the code covered by logging, pass the 'main()' functions' 'logger' instances to structures it creates to execute the user-specified operation (i.e., the arg parser, 'git-bundle-server' commands, 'bundleWebServer', and daemon providers). For now, do nothing with the 'logger' instance in those structs. Signed-off-by: Victoria Dye <[email protected]>
1 parent 40403ae commit 31494fb

File tree

16 files changed

+112
-60
lines changed

16 files changed

+112
-60
lines changed

cmd/git-bundle-server/delete.go

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,17 @@ import (
66

77
"github.com/github/git-bundle-server/internal/argparse"
88
"github.com/github/git-bundle-server/internal/core"
9+
"github.com/github/git-bundle-server/internal/log"
910
)
1011

11-
type deleteCmd struct{}
12+
type deleteCmd struct {
13+
logger log.TraceLogger
14+
}
1215

13-
func NewDeleteCommand() argparse.Subcommand {
14-
return &deleteCmd{}
16+
func NewDeleteCommand(logger log.TraceLogger) argparse.Subcommand {
17+
return &deleteCmd{
18+
logger: logger,
19+
}
1520
}
1621

1722
func (deleteCmd) Name() string {
@@ -24,8 +29,8 @@ Remove the configuration for the given '<route>' and delete its repository
2429
data.`
2530
}
2631

27-
func (deleteCmd) Run(ctx context.Context, args []string) error {
28-
parser := argparse.NewArgParser("git-bundle-server delete <route>")
32+
func (d *deleteCmd) Run(ctx context.Context, args []string) error {
33+
parser := argparse.NewArgParser(d.logger, "git-bundle-server delete <route>")
2934
route := parser.PositionalString("route", "the route to delete")
3035
parser.Parse(ctx, args)
3136

cmd/git-bundle-server/init.go

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,17 @@ import (
88
"github.com/github/git-bundle-server/internal/bundles"
99
"github.com/github/git-bundle-server/internal/core"
1010
"github.com/github/git-bundle-server/internal/git"
11+
"github.com/github/git-bundle-server/internal/log"
1112
)
1213

13-
type initCmd struct{}
14+
type initCmd struct {
15+
logger log.TraceLogger
16+
}
1417

15-
func NewInitCommand() argparse.Subcommand {
16-
return &initCmd{}
18+
func NewInitCommand(logger log.TraceLogger) argparse.Subcommand {
19+
return &initCmd{
20+
logger: logger,
21+
}
1722
}
1823

1924
func (initCmd) Name() string {
@@ -26,8 +31,8 @@ Initialize a repository by cloning a bare repo from '<url>', whose bundles
2631
should be hosted at '<route>'.`
2732
}
2833

29-
func (initCmd) Run(ctx context.Context, args []string) error {
30-
parser := argparse.NewArgParser("git-bundle-server init <url> <route>")
34+
func (i *initCmd) Run(ctx context.Context, args []string) error {
35+
parser := argparse.NewArgParser(i.logger, "git-bundle-server init <url> <route>")
3136
url := parser.PositionalString("url", "the URL of a repository to clone")
3237
// TODO: allow parsing <route> out of <url>
3338
route := parser.PositionalString("route", "the route to host the specified repo")

cmd/git-bundle-server/main.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,23 +9,23 @@ import (
99
tracelog "github.com/github/git-bundle-server/internal/log"
1010
)
1111

12-
func all() []argparse.Subcommand {
12+
func all(logger tracelog.TraceLogger) []argparse.Subcommand {
1313
return []argparse.Subcommand{
14-
NewDeleteCommand(),
15-
NewInitCommand(),
16-
NewStartCommand(),
17-
NewStopCommand(),
18-
NewUpdateCommand(),
19-
NewUpdateAllCommand(),
20-
NewWebServerCommand(),
14+
NewDeleteCommand(logger),
15+
NewInitCommand(logger),
16+
NewStartCommand(logger),
17+
NewStopCommand(logger),
18+
NewUpdateCommand(logger),
19+
NewUpdateAllCommand(logger),
20+
NewWebServerCommand(logger),
2121
}
2222
}
2323

2424
func main() {
2525
tracelog.WithTraceLogger(context.Background(), func(ctx context.Context, logger tracelog.TraceLogger) {
26-
cmds := all()
26+
cmds := all(logger)
2727

28-
parser := argparse.NewArgParser("git-bundle-server <command> [<options>]")
28+
parser := argparse.NewArgParser(logger, "git-bundle-server <command> [<options>]")
2929
parser.SetIsTopLevel(true)
3030
for _, cmd := range cmds {
3131
parser.Subcommand(cmd)

cmd/git-bundle-server/start.go

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,17 @@ import (
77

88
"github.com/github/git-bundle-server/internal/argparse"
99
"github.com/github/git-bundle-server/internal/core"
10+
"github.com/github/git-bundle-server/internal/log"
1011
)
1112

12-
type startCmd struct{}
13+
type startCmd struct {
14+
logger log.TraceLogger
15+
}
1316

14-
func NewStartCommand() argparse.Subcommand {
15-
return &startCmd{}
17+
func NewStartCommand(logger log.TraceLogger) argparse.Subcommand {
18+
return &startCmd{
19+
logger: logger,
20+
}
1621
}
1722

1823
func (startCmd) Name() string {
@@ -25,8 +30,8 @@ Start computing bundles and serving content for the repository at the
2530
specified '<route>'.`
2631
}
2732

28-
func (startCmd) Run(ctx context.Context, args []string) error {
29-
parser := argparse.NewArgParser("git-bundle-server start <route>")
33+
func (s *startCmd) Run(ctx context.Context, args []string) error {
34+
parser := argparse.NewArgParser(s.logger, "git-bundle-server start <route>")
3035
route := parser.PositionalString("route", "the route for which bundles should be generated")
3136
parser.Parse(ctx, args)
3237

cmd/git-bundle-server/stop.go

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,17 @@ import (
55

66
"github.com/github/git-bundle-server/internal/argparse"
77
"github.com/github/git-bundle-server/internal/core"
8+
"github.com/github/git-bundle-server/internal/log"
89
)
910

10-
type stopCmd struct{}
11+
type stopCmd struct {
12+
logger log.TraceLogger
13+
}
1114

12-
func NewStopCommand() argparse.Subcommand {
13-
return &stopCmd{}
15+
func NewStopCommand(logger log.TraceLogger) argparse.Subcommand {
16+
return &stopCmd{
17+
logger: logger,
18+
}
1419
}
1520

1621
func (stopCmd) Name() string {
@@ -23,8 +28,8 @@ Stop computing bundles or serving content for the repository at the
2328
specified '<route>'.`
2429
}
2530

26-
func (stopCmd) Run(ctx context.Context, args []string) error {
27-
parser := argparse.NewArgParser("git-bundle-server stop <route>")
31+
func (s *stopCmd) Run(ctx context.Context, args []string) error {
32+
parser := argparse.NewArgParser(s.logger, "git-bundle-server stop <route>")
2833
route := parser.PositionalString("route", "the route for which bundles should stop being generated")
2934
parser.Parse(ctx, args)
3035

cmd/git-bundle-server/update-all.go

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,17 @@ import (
99
"github.com/github/git-bundle-server/internal/argparse"
1010
"github.com/github/git-bundle-server/internal/common"
1111
"github.com/github/git-bundle-server/internal/core"
12+
"github.com/github/git-bundle-server/internal/log"
1213
)
1314

14-
type updateAllCmd struct{}
15+
type updateAllCmd struct {
16+
logger log.TraceLogger
17+
}
1518

16-
func NewUpdateAllCommand() argparse.Subcommand {
17-
return &updateAllCmd{}
19+
func NewUpdateAllCommand(logger log.TraceLogger) argparse.Subcommand {
20+
return &updateAllCmd{
21+
logger: logger,
22+
}
1823
}
1924

2025
func (updateAllCmd) Name() string {
@@ -26,14 +31,14 @@ func (updateAllCmd) Description() string {
2631
For every configured route, run 'git-bundle-server update <options> <route>'.`
2732
}
2833

29-
func (updateAllCmd) Run(ctx context.Context, args []string) error {
34+
func (u *updateAllCmd) Run(ctx context.Context, args []string) error {
3035
user, err := common.NewUserProvider().CurrentUser()
3136
if err != nil {
3237
return err
3338
}
3439
fs := common.NewFileSystem()
3540

36-
parser := argparse.NewArgParser("git-bundle-server update-all")
41+
parser := argparse.NewArgParser(u.logger, "git-bundle-server update-all")
3742
parser.Parse(ctx, args)
3843

3944
exe, err := os.Executable()

cmd/git-bundle-server/update.go

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,17 @@ import (
77
"github.com/github/git-bundle-server/internal/argparse"
88
"github.com/github/git-bundle-server/internal/bundles"
99
"github.com/github/git-bundle-server/internal/core"
10+
"github.com/github/git-bundle-server/internal/log"
1011
)
1112

12-
type updateCmd struct{}
13+
type updateCmd struct {
14+
logger log.TraceLogger
15+
}
1316

14-
func NewUpdateCommand() argparse.Subcommand {
15-
return &updateAllCmd{}
17+
func NewUpdateCommand(logger log.TraceLogger) argparse.Subcommand {
18+
return &updateCmd{
19+
logger: logger,
20+
}
1621
}
1722

1823
func (updateCmd) Name() string {
@@ -26,8 +31,8 @@ For the repository in the current directory (or the one specified by
2631
bundles, and update the bundle list.`
2732
}
2833

29-
func (updateCmd) Run(ctx context.Context, args []string) error {
30-
parser := argparse.NewArgParser("git-bundle-server update <route>")
34+
func (u *updateCmd) Run(ctx context.Context, args []string) error {
35+
parser := argparse.NewArgParser(u.logger, "git-bundle-server update <route>")
3136
route := parser.PositionalString("route", "the route to update")
3237
parser.Parse(ctx, args)
3338

cmd/git-bundle-server/web-server.go

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,20 @@ import (
1313
"github.com/github/git-bundle-server/internal/argparse"
1414
"github.com/github/git-bundle-server/internal/common"
1515
"github.com/github/git-bundle-server/internal/daemon"
16+
"github.com/github/git-bundle-server/internal/log"
1617
)
1718

1819
type webServerCmd struct {
20+
logger log.TraceLogger
1921
user common.UserProvider
2022
cmdExec common.CommandExecutor
2123
fileSystem common.FileSystem
2224
}
2325

24-
func NewWebServerCommand() argparse.Subcommand {
26+
func NewWebServerCommand(logger log.TraceLogger) argparse.Subcommand {
2527
// Create subcommand-specific dependencies
2628
return &webServerCmd{
29+
logger: logger,
2730
user: common.NewUserProvider(),
2831
cmdExec: common.NewCommandExecutor(),
2932
fileSystem: common.NewFileSystem(),
@@ -79,7 +82,7 @@ func (w *webServerCmd) getDaemonConfig() (*daemon.DaemonConfig, error) {
7982

8083
func (w *webServerCmd) startServer(ctx context.Context, args []string) error {
8184
// Parse subcommand arguments
82-
parser := argparse.NewArgParser("git-bundle-server web-server start [-f|--force]")
85+
parser := argparse.NewArgParser(w.logger, "git-bundle-server web-server start [-f|--force]")
8386

8487
// Args for 'git-bundle-server web-server start'
8588
force := parser.Bool("force", false, "Force reconfiguration of the web server daemon")
@@ -94,7 +97,7 @@ func (w *webServerCmd) startServer(ctx context.Context, args []string) error {
9497
parser.Parse(ctx, args)
9598
validate(ctx)
9699

97-
d, err := daemon.NewDaemonProvider(w.user, w.cmdExec, w.fileSystem)
100+
d, err := daemon.NewDaemonProvider(w.logger, w.user, w.cmdExec, w.fileSystem)
98101
if err != nil {
99102
return err
100103
}
@@ -146,11 +149,11 @@ func (w *webServerCmd) startServer(ctx context.Context, args []string) error {
146149

147150
func (w *webServerCmd) stopServer(ctx context.Context, args []string) error {
148151
// Parse subcommand arguments
149-
parser := argparse.NewArgParser("git-bundle-server web-server stop [--remove]")
152+
parser := argparse.NewArgParser(w.logger, "git-bundle-server web-server stop [--remove]")
150153
remove := parser.Bool("remove", false, "Remove the web server daemon configuration from the system after stopping")
151154
parser.Parse(ctx, args)
152155

153-
d, err := daemon.NewDaemonProvider(w.user, w.cmdExec, w.fileSystem)
156+
d, err := daemon.NewDaemonProvider(w.logger, w.user, w.cmdExec, w.fileSystem)
154157
if err != nil {
155158
return err
156159
}
@@ -177,7 +180,7 @@ func (w *webServerCmd) stopServer(ctx context.Context, args []string) error {
177180

178181
func (w *webServerCmd) Run(ctx context.Context, args []string) error {
179182
// Parse command arguments
180-
parser := argparse.NewArgParser("git-bundle-server web-server (start|stop) <options>")
183+
parser := argparse.NewArgParser(w.logger, "git-bundle-server web-server (start|stop) <options>")
181184
parser.Subcommand(argparse.NewSubcommand("start", "Start the web server", w.startServer))
182185
parser.Subcommand(argparse.NewSubcommand("stop", "Stop the web server", w.stopServer))
183186
parser.Parse(ctx, args)

cmd/git-bundle-web-server/bundle-server.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,21 @@ import (
1313

1414
"github.com/github/git-bundle-server/internal/common"
1515
"github.com/github/git-bundle-server/internal/core"
16+
tracelog "github.com/github/git-bundle-server/internal/log"
1617
)
1718

1819
type bundleWebServer struct {
20+
logger tracelog.TraceLogger
1921
server *http.Server
2022
serverWaitGroup *sync.WaitGroup
2123
listenAndServeFunc func() error
2224
}
2325

24-
func NewBundleWebServer(port string, certFile string, keyFile string) *bundleWebServer {
26+
func NewBundleWebServer(logger tracelog.TraceLogger,
27+
port string, certFile string, keyFile string,
28+
) *bundleWebServer {
2529
bundleServer := &bundleWebServer{
30+
logger: logger,
2631
serverWaitGroup: &sync.WaitGroup{},
2732
}
2833

cmd/git-bundle-web-server/main.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import (
1313

1414
func main() {
1515
log.WithTraceLogger(context.Background(), func(ctx context.Context, logger log.TraceLogger) {
16-
parser := argparse.NewArgParser("git-bundle-web-server [--port <port>] [--cert <filename> --key <filename>]")
16+
parser := argparse.NewArgParser(logger, "git-bundle-web-server [--port <port>] [--cert <filename> --key <filename>]")
1717
flags, validate := utils.WebServerFlags(parser)
1818
flags.VisitAll(func(f *flag.Flag) {
1919
parser.Var(f.Value, f.Name, f.Usage)
@@ -28,7 +28,7 @@ func main() {
2828
key := utils.GetFlagValue[string](parser, "key")
2929

3030
// Configure the server
31-
bundleServer := NewBundleWebServer(port, cert, key)
31+
bundleServer := NewBundleWebServer(logger, port, cert, key)
3232

3333
// Start the server asynchronously
3434
bundleServer.StartServerAsync(ctx)

internal/argparse/argparse.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import (
66
"fmt"
77
"os"
88
"strings"
9+
10+
"github.com/github/git-bundle-server/internal/log"
911
)
1012

1113
// For consistency with 'flag', use 2 as the usage-related error code
@@ -30,17 +32,19 @@ type argParser struct {
3032
// Post-parsing
3133
selectedSubcommand Subcommand
3234

35+
logger log.TraceLogger
3336
flag.FlagSet
3437
}
3538

36-
func NewArgParser(usageString string) *argParser {
39+
func NewArgParser(logger log.TraceLogger, usageString string) *argParser {
3740
flagSet := flag.NewFlagSet("", flag.ContinueOnError)
3841

3942
a := &argParser{
4043
isTopLevel: false,
4144
parsed: false,
4245
argOffset: 0,
4346
subcommands: make(map[string]Subcommand),
47+
logger: logger,
4448
FlagSet: *flagSet,
4549
}
4650

internal/daemon/daemon.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"runtime"
77

88
"github.com/github/git-bundle-server/internal/common"
9+
"github.com/github/git-bundle-server/internal/log"
910
)
1011

1112
type DaemonConfig struct {
@@ -26,17 +27,18 @@ type DaemonProvider interface {
2627
}
2728

2829
func NewDaemonProvider(
30+
l log.TraceLogger,
2931
u common.UserProvider,
3032
c common.CommandExecutor,
3133
fs common.FileSystem,
3234
) (DaemonProvider, error) {
3335
switch thisOs := runtime.GOOS; thisOs {
3436
case "linux":
3537
// Use systemd/systemctl
36-
return NewSystemdProvider(u, c, fs), nil
38+
return NewSystemdProvider(l, u, c, fs), nil
3739
case "darwin":
3840
// Use launchd/launchctl
39-
return NewLaunchdProvider(u, c, fs), nil
41+
return NewLaunchdProvider(l, u, c, fs), nil
4042
default:
4143
return nil, fmt.Errorf("cannot configure daemon handler for OS '%s'", thisOs)
4244
}

0 commit comments

Comments
 (0)