fix: use plugin version ()

This commit is contained in:
Ludovic Fernandez 2024-04-18 01:33:24 +02:00 committed by GitHub
parent 3ba2604b00
commit 003b048069
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -53,9 +53,9 @@ func (b Builder) Build(ctx context.Context) error {
b.log.Infof("Adding replace directives")
err = b.addReplaceDirectives(ctx)
err = b.addToGoMod(ctx)
if err != nil {
return fmt.Errorf("add replace directives: %w", err)
return fmt.Errorf("add to go.mod: %w", err)
}
b.log.Infof("Running go mod tidy")
@ -103,30 +103,61 @@ func (b Builder) clone(ctx context.Context) error {
return nil
}
func (b Builder) addReplaceDirectives(ctx context.Context) error {
func (b Builder) addToGoMod(ctx context.Context) error {
for _, plugin := range b.cfg.Plugins {
if plugin.Path == "" {
if plugin.Path != "" {
err := b.addReplaceDirective(ctx, plugin)
if err != nil {
return err
}
continue
}
replace := fmt.Sprintf("%s=%s", plugin.Module, plugin.Path)
cmd := exec.CommandContext(ctx, "go", "mod", "edit", "-replace", replace)
cmd.Dir = b.repo
b.log.Infof("run: %s", strings.Join(cmd.Args, " "))
output, err := cmd.CombinedOutput()
err := b.goGet(ctx, plugin)
if err != nil {
b.log.Warnf(string(output))
return fmt.Errorf("%s: %w", strings.Join(cmd.Args, " "), err)
return err
}
}
return nil
}
func (b Builder) goGet(ctx context.Context, plugin *Plugin) error {
//nolint:gosec // the variables are user related.
cmd := exec.CommandContext(ctx, "go", "get", plugin.Module+"@"+plugin.Version)
cmd.Dir = b.repo
b.log.Infof("run: %s", strings.Join(cmd.Args, " "))
output, err := cmd.CombinedOutput()
if err != nil {
b.log.Warnf(string(output))
return fmt.Errorf("%s: %w", strings.Join(cmd.Args, " "), err)
}
return nil
}
func (b Builder) addReplaceDirective(ctx context.Context, plugin *Plugin) error {
replace := fmt.Sprintf("%s=%s", plugin.Module, plugin.Path)
cmd := exec.CommandContext(ctx, "go", "mod", "edit", "-replace", replace)
cmd.Dir = b.repo
b.log.Infof("run: %s", strings.Join(cmd.Args, " "))
output, err := cmd.CombinedOutput()
if err != nil {
b.log.Warnf(string(output))
return fmt.Errorf("%s: %w", strings.Join(cmd.Args, " "), err)
}
return nil
}
func (b Builder) goModTidy(ctx context.Context) error {
cmd := exec.CommandContext(ctx, "go", "mod", "tidy")
cmd.Dir = b.repo