this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

mod/modzip: check for cue.mod directories instead of go.mod files

The directory walk in listFilesInDir was incorrectly checking for
go.mod files to detect submodules, borrowing from Go's module zip code.
CUE uses cue.mod directories instead.

This bug was masked by a second check in checkFiles that correctly
detects files under cue.mod subdirectories and omits them. That check
remains necessary for direct callers of CheckFiles and Create that
pass file lists not obtained from our directory walk.

The directory walk check is now consistent: it skips cue.mod
subdirectories at walk time, avoiding unnecessary file enumeration.

Signed-off-by: Daniel Martí <mvdan@mvdan.cc>
Change-Id: If3ae3607b57e3ac5f92c154e5cac5ba7364beebd
Reviewed-on: https://review.gerrithub.io/c/cue-lang/cue/+/1229771
TryBot-Result: CUEcueckoo <cueckoo@cuelang.org>
Unity-Result: CUE porcuepine <cue.porcuepine@gmail.com>
Reviewed-by: Matthew Sackman <matthew@cue.works>

+5 -4
+3 -2
mod/modzip/testdata/check_dir/various.txt
··· 1 1 -- want -- 2 2 valid: 3 + $work/gosub/go.mod 4 + $work/gosub/y.cue 3 5 $work/valid.cue 4 6 $work/vendor/x/y 5 7 6 8 omitted: 7 9 $work/.hg_archival.txt: file is inserted by 'hg archive' and is always omitted 8 - $work/sub/cue.mod/module.cue: file is in another module 9 10 $work/.git: directory is a version control repository 10 - $work/gosub: directory is in another module 11 + $work/sub: directory is in another module 11 12 12 13 invalid: 13 14 $work/CUE.MOD: cue.mod directories must have lowercase names
+2 -2
mod/modzip/zip.go
··· 785 785 return filepath.SkipDir 786 786 } 787 787 788 - // Skip submodules (directories containing go.mod files). 789 - if goModInfo, err := os.Lstat(filepath.Join(filePath, "go.mod")); err == nil && !goModInfo.IsDir() { 788 + // Skip submodules (directories containing cue.mod directories). 789 + if cueModInfo, err := os.Lstat(filepath.Join(filePath, "cue.mod")); err == nil && cueModInfo.IsDir() { 790 790 omitted = append(omitted, FileError{Path: slashPath, Err: errSubmoduleDir}) 791 791 return filepath.SkipDir 792 792 }