| 26 | var embeddedFS embed.FS |
| 27 | |
| 28 | func writeFS(srcFS fs.FS, srcRoot, dstRoot string) error { |
| 29 | return fs.WalkDir( //nolint:wrapcheck |
| 30 | srcFS, |
| 31 | srcRoot, |
| 32 | func(p string, d fs.DirEntry, err error) error { |
| 33 | if err != nil { |
| 34 | return fmt.Errorf("failed to walk %s: %w", p, err) |
| 35 | } |
| 36 | |
| 37 | rel, err := filepath.Rel(srcRoot, p) |
| 38 | if err != nil { |
| 39 | return fmt.Errorf("failed to compute relative path for %s: %w", p, err) |
| 40 | } |
| 41 | |
| 42 | dst := filepath.Join(dstRoot, rel) |
| 43 | |
| 44 | if d.IsDir() { |
| 45 | if err := os.MkdirAll(dst, 0o755); err != nil { //nolint:mnd |
| 46 | return fmt.Errorf("failed to create dir %s: %w", dst, err) |
| 47 | } |
| 48 | |
| 49 | return nil |
| 50 | } |
| 51 | |
| 52 | data, err := fs.ReadFile(srcFS, p) |
| 53 | if err != nil { |
| 54 | return fmt.Errorf("failed to read file %s: %w", p, err) |
| 55 | } |
| 56 | |
| 57 | if err := os.WriteFile(dst, data, 0o600); err != nil { //nolint:mnd |
| 58 | return fmt.Errorf("failed to write file %s: %w", dst, err) |
| 59 | } |
| 60 | |
| 61 | return nil |
| 62 | }, |
| 63 | ) |
| 64 | } |
| 65 | |
| 66 | const hasuraMetadataVersion = 3 |
| 67 | |