Skip to content

Commit

Permalink
always test to load config with localFileLoader
Browse files Browse the repository at this point in the history
and pass workdir to LoadConfigFiles func to setup ConfigDetails

Signed-off-by: Guillaume Lours <[email protected]>
  • Loading branch information
glours committed Oct 22, 2024
1 parent 8948716 commit aebbee9
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 8 deletions.
6 changes: 3 additions & 3 deletions cli/options.go
Original file line number Diff line number Diff line change
Expand Up @@ -404,8 +404,8 @@ func (o *ProjectOptions) GetWorkingDir() (string, error) {
}

// ReadConfigFiles reads ConfigFiles and populates the content field
func (o ProjectOptions) ReadConfigFiles(ctx context.Context, options *ProjectOptions) (*types.ConfigDetails, error) {
config, err := loader.LoadConfigFiles(ctx, options.ConfigPaths, options.loadOptions...)
func (o *ProjectOptions) ReadConfigFiles(ctx context.Context, workingDir string, options *ProjectOptions) (*types.ConfigDetails, error) {
config, err := loader.LoadConfigFiles(ctx, options.ConfigPaths, workingDir, options.loadOptions...)
if err != nil {
return nil, err
}
Expand Down Expand Up @@ -477,7 +477,7 @@ func (o *ProjectOptions) prepare(ctx context.Context) (*types.ConfigDetails, err
return &types.ConfigDetails{}, err
}

configDetails, err := o.ReadConfigFiles(ctx, o)
configDetails, err := o.ReadConfigFiles(ctx, defaultDir, o)
if err != nil {
return configDetails, err
}
Expand Down
12 changes: 7 additions & 5 deletions loader/loader.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ import (
"strings"

"github.com/compose-spec/compose-go/v2/consts"
"github.com/compose-spec/compose-go/v2/errdefs"
interp "github.com/compose-spec/compose-go/v2/interpolation"
"github.com/compose-spec/compose-go/v2/override"
"github.com/compose-spec/compose-go/v2/paths"
Expand Down Expand Up @@ -140,8 +141,8 @@ func (l localResourceLoader) abs(p string) string {
}

func (l localResourceLoader) Accept(p string) bool {

Check failure on line 143 in loader/loader.go

View workflow job for this annotation

GitHub Actions / test (1.21, ubuntu-latest)

unused-parameter: parameter 'p' seems to be unused, consider removing or renaming it as _ (revive)
_, err := os.Stat(l.abs(p))
return err == nil
// LocalResourceLoader is the last loader tested so it always should accept the config and try to get the content.
return true
}

func (l localResourceLoader) Load(_ context.Context, p string) (string, error) {
Expand Down Expand Up @@ -301,14 +302,15 @@ func parseYAML(decoder *yaml.Decoder) (map[string]interface{}, PostProcessor, er
}

// LoadConfigFiles ingests config files with ResourceLoader and returns config details with paths to local copies
func LoadConfigFiles(ctx context.Context, configFiles []string, options ...func(*Options)) (*types.ConfigDetails, error) {
func LoadConfigFiles(ctx context.Context, configFiles []string, workingDir string, options ...func(*Options)) (*types.ConfigDetails, error) {
if len(configFiles) < 1 {
return &types.ConfigDetails{}, errors.New("no files specified")
return &types.ConfigDetails{}, fmt.Errorf("no configuration file provided: %w", errdefs.ErrNotFound)
}

opts := &Options{}
config := &types.ConfigDetails{
ConfigFiles: make([]types.ConfigFile, len(configFiles)),
WorkingDir: workingDir,
}

for _, op := range options {
Expand All @@ -326,7 +328,7 @@ func LoadConfigFiles(ctx context.Context, configFiles []string, options ...func(
continue
}
if config.WorkingDir == "" {
config.WorkingDir = filepath.Dir(local)
config.WorkingDir = workingDir

}
abs, err := filepath.Abs(local)
Expand Down

0 comments on commit aebbee9

Please sign in to comment.