Skip to content

Commit

Permalink
fix: --path flag in update
Browse files Browse the repository at this point in the history
Recent changes have resulted in the `wolfictl update --path` flag
breaking.

This flag allows for working with a repo where the melange yaml's are in
a subdir such as `./packages` of the repo.

> ℹ️            | 2024/01/31 00:40:50 wolfictl update: attempt 1: failed to update packages in git repository: failed to parse open docker-compose.yaml: no such file or directory
  • Loading branch information
joemiller committed Feb 11, 2024
1 parent 00ebf14 commit ed1fcf2
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 6 deletions.
14 changes: 9 additions & 5 deletions pkg/update/update.go
Original file line number Diff line number Diff line change
Expand Up @@ -369,7 +369,7 @@ func (o *Options) updateGitPackage(ctx context.Context, repo *git.Repository, pa
root := worktree.Filesystem.Root()
log.Printf("working directory: %s", root)

configFile := filepath.Join(root, pc.Filename)
configFile := filepath.Join(pc.Dir, pc.Filename)
if configFile == "" {
return "", fmt.Errorf("no config filename found for package %s", packageName)
}
Expand Down Expand Up @@ -416,7 +416,7 @@ func (o *Options) updateGitPackage(ctx context.Context, repo *git.Repository, pa
}

// now make sure update config is configured
updated, err := config.ParseConfiguration(ctx, filepath.Join(root, pc.Filename))
updated, err := config.ParseConfiguration(ctx, filepath.Join(pc.Dir, pc.Filename))
if err != nil {
return "", fmt.Errorf("failed to parse %v", err)
}
Expand All @@ -435,7 +435,7 @@ func (o *Options) updateGitPackage(ctx context.Context, repo *git.Repository, pa

// Skip any processing for definitions with a single pipeline
if len(updated.Pipeline) > 1 && deps.ContainsGoBumpPipeline(updated) {
if err := o.updateGoBumpDeps(updated, root, pc.Filename, mutations); err != nil {
if err := o.updateGoBumpDeps(updated, pc.Dir, pc.Filename, mutations); err != nil {
return fmt.Sprintf("error cleaning up go/bump deps: %v", err), nil
}
}
Expand All @@ -447,12 +447,16 @@ func (o *Options) updateGitPackage(ctx context.Context, repo *git.Repository, pa
o.Logger.Printf("after clean go bumps: %s git status: %s", packageName, string(rs))

// Run yam formatter
err = yam.FormatConfigurationFile(root, pc.Filename)
err = yam.FormatConfigurationFile(root, filepath.Join(pc.Dir, pc.Filename))
if err != nil {
return fmt.Sprintf("failed to format configuration file: %v", err), nil
}

_, err = worktree.Add(pc.Filename)
relativeFilename, err := filepath.Rel(root, filepath.Join(pc.Dir, pc.Filename))
if err != nil {
return "", fmt.Errorf("failed to get relative path from dir %s and file %s: %v", pc.Dir, pc.Filename, err)
}
_, err = worktree.Add(relativeFilename)
if err != nil {
return "", fmt.Errorf("failed to git add %s: %w", configFile, err)
}
Expand Down
8 changes: 7 additions & 1 deletion pkg/yam/yam.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,15 @@ func FormatConfigurationFile(dir, filename string) error {
return fmt.Errorf("failed to read yam config file: %v", err)
}

// remove root dir from filename
relativeFilename, err := filepath.Rel(dir, filename)
if err != nil {
return fmt.Errorf("failed to get relative path from dir %s and file %s: %v", dir, filename, err)
}

fsys := osAdapter.DirFS(dir)
// Format file following the repo level format
err = yam.Format(fsys, []string{filename}, yam.FormatOptions{EncodeOptions: *encodeOptions})
err = yam.Format(fsys, []string{relativeFilename}, yam.FormatOptions{EncodeOptions: *encodeOptions})
if err != nil {
return fmt.Errorf("error formatting the file %s: %v", filename, err)
}
Expand Down

0 comments on commit ed1fcf2

Please sign in to comment.