feat: scan subdirectories for resource_type in standard resources sync

This commit is contained in:
tian 2026-05-06 13:47:13 +08:00
parent 5d116f0ecc
commit 10f015cdd9

View File

@ -74,8 +74,37 @@ func (s *ResourceManagementService) SyncStandardResourcesFromDirectory(dir strin
}
for _, entry := range entries {
if entry.IsDir() {
// Subdirectory = resource_type; scan files inside
resourceType := entry.Name()
subDir := filepath.Join(dir, resourceType)
subEntries, serr := os.ReadDir(subDir)
if serr != nil {
continue
}
for _, sub := range subEntries {
if sub.IsDir() {
continue
}
fullPath := filepath.Join(subDir, sub.Name())
sum, size, err := hashFile(fullPath)
if err != nil {
return err
}
record := storage.StandardResourceRecord{
Name: strings.TrimSuffix(sub.Name(), filepath.Ext(sub.Name())),
ResourceType: resourceType,
Version: "auto",
SHA256: sum,
SizeBytes: size,
FilePath: fullPath,
}
if err := s.repo.Save(record); err != nil {
return err
}
}
continue
}
// Flat file: infer resource_type from filename or leave empty (legacy)
fullPath := filepath.Join(dir, entry.Name())
sum, size, err := hashFile(fullPath)
if err != nil {