Skip to content

Commit a4f4087

Browse files
authored
Merge pull request #37 from github/vdye/update-progress-info
Improve informational printouts in `update-all` and `update`
2 parents ae0f7b4 + ff93dbc commit a4f4087

File tree

2 files changed

+17
-17
lines changed

2 files changed

+17
-17
lines changed

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

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@ package main
22

33
import (
44
"context"
5-
"os"
6-
"os/exec"
5+
"fmt"
76

87
"github.com/github/git-bundle-server/cmd/utils"
98
"github.com/github/git-bundle-server/internal/argparse"
9+
"github.com/github/git-bundle-server/internal/cmd"
10+
"github.com/github/git-bundle-server/internal/common"
1011
"github.com/github/git-bundle-server/internal/core"
1112
"github.com/github/git-bundle-server/internal/log"
1213
)
@@ -37,13 +38,15 @@ func (u *updateAllCmd) Run(ctx context.Context, args []string) error {
3738
parser.Parse(ctx, args)
3839

3940
repoProvider := utils.GetDependency[core.RepositoryProvider](ctx, u.container)
41+
fileSystem := utils.GetDependency[common.FileSystem](ctx, u.container)
42+
commandExecutor := utils.GetDependency[cmd.CommandExecutor](ctx, u.container)
4043

4144
repos, err := repoProvider.GetRepositories(ctx)
4245
if err != nil {
4346
return u.logger.Error(ctx, err)
4447
}
4548

46-
exe, err := os.Executable()
49+
exe, err := fileSystem.GetLocalExecutable("git-bundle-server")
4750
if err != nil {
4851
return u.logger.Errorf(ctx, "failed to get path to execuable: %w", err)
4952
}
@@ -53,19 +56,14 @@ func (u *updateAllCmd) Run(ctx context.Context, args []string) error {
5356

5457
for route := range repos {
5558
subargs[1] = route
56-
cmd := exec.Command(exe, subargs...)
57-
cmd.Stderr = os.Stderr
58-
cmd.Stdout = os.Stdout
59-
60-
err := cmd.Start()
61-
if err != nil {
62-
return u.logger.Errorf(ctx, "git command failed to start: %w", err)
63-
}
64-
65-
err = cmd.Wait()
59+
fmt.Printf("*** Updating %s ***\n", route)
60+
exitCode, err := commandExecutor.RunStdout(ctx, exe, subargs...)
6661
if err != nil {
67-
return u.logger.Errorf(ctx, "git command returned a failure: %w", err)
62+
return u.logger.Error(ctx, err)
63+
} else if exitCode != 0 {
64+
return u.logger.Errorf(ctx, "git-bundle-server update exited with status %d", exitCode)
6865
}
66+
fmt.Print("\n")
6967
}
7068

7169
return nil

cmd/git-bundle-server/update.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,30 +52,32 @@ func (u *updateCmd) Run(ctx context.Context, args []string) error {
5252
return u.logger.Errorf(ctx, "failed to load bundle list: %w", err)
5353
}
5454

55-
fmt.Printf("Creating new incremental bundle\n")
55+
fmt.Printf("Checking for updates to %s\n", repo.Route)
5656
bundle, err := bundleProvider.CreateIncrementalBundle(ctx, repo, list)
5757
if err != nil {
5858
return u.logger.Error(ctx, err)
5959
}
6060

6161
// Nothing new!
6262
if bundle == nil {
63+
fmt.Printf("%s is up-to-date, no new bundles generated\n", repo.Route)
6364
return nil
6465
}
6566

6667
list.Bundles[bundle.CreationToken] = *bundle
6768

68-
fmt.Printf("Collapsing bundle list\n")
69+
fmt.Println("Updating bundle list")
6970
err = bundleProvider.CollapseList(ctx, repo, list)
7071
if err != nil {
7172
return u.logger.Error(ctx, err)
7273
}
7374

74-
fmt.Printf("Writing updated bundle list\n")
75+
fmt.Println("Writing updated bundle list")
7576
listErr := bundleProvider.WriteBundleList(ctx, list, repo)
7677
if listErr != nil {
7778
return u.logger.Errorf(ctx, "failed to write bundle list: %w", listErr)
7879
}
7980

81+
fmt.Println("Update complete")
8082
return nil
8183
}

0 commit comments

Comments
 (0)