From 10f015cdd98b57d5290a5924acb4325dc1fb275f Mon Sep 17 00:00:00 2001 From: tian <11429339@qq.com> Date: Wed, 6 May 2026 13:47:13 +0800 Subject: [PATCH] feat: scan subdirectories for resource_type in standard resources sync --- internal/service/resource_management.go | 29 +++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/internal/service/resource_management.go b/internal/service/resource_management.go index 444db06..c82b141 100644 --- a/internal/service/resource_management.go +++ b/internal/service/resource_management.go @@ -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 {