Skip to content

Commit b2a57cc

Browse files
MarcStdtcursoragent
andcommitted
fix: skip missing explicit data chunks
Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 97a6821 commit b2a57cc

2 files changed

Lines changed: 19 additions & 0 deletions

File tree

internal/utils/fs.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,6 +373,9 @@ func validateExplicitChunks(dataDir string, chunks []*domain.Chunks) ([]*domain.
373373
chunkRoot := filepath.Join(dataDir, chunk.Path)
374374
err := filepath.WalkDir(chunkRoot, func(path string, d os.DirEntry, err error) error {
375375
if err != nil {
376+
if os.IsNotExist(err) {
377+
return filepath.SkipDir
378+
}
376379
return err
377380
}
378381
if d.Type()&os.ModeSymlink == 0 {

internal/utils/fs_test.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,22 @@ func TestAutoChunkDataDirSkipsMissingNestedParentRemainder(t *testing.T) {
121121
}
122122
}
123123

124+
func TestAutoChunkDataDirSkipsMissingExplicitChunkDuringValidation(t *testing.T) {
125+
dataDir := t.TempDir()
126+
writeFile(t, filepath.Join(dataDir, "install-lgsm.sh"), "install\n")
127+
128+
chunks, err := AutoChunkDataDir(dataDir, []*domain.Chunks{
129+
{Name: "install-lgsm", Path: "install-lgsm.sh"},
130+
{Name: "lgsm-launcher", Path: "arkserver"},
131+
{Name: "serverfiles", Path: "serverfiles"},
132+
})
133+
if err != nil {
134+
t.Fatalf("AutoChunkDataDir returned error: %v", err)
135+
}
136+
137+
assertChunkPaths(t, chunks, []string{"install-lgsm.sh", "arkserver", "serverfiles"})
138+
}
139+
124140
func TestAutoChunkDataDirRejectsOverlappingChunks(t *testing.T) {
125141
dataDir := t.TempDir()
126142
mkdirAll(t, filepath.Join(dataDir, "serverfiles", "ShooterGame", "Content", "Maps"))

0 commit comments

Comments
 (0)