| 61 | } |
| 62 | |
| 63 | func (s *tlsStore) listContextData(name string) (map[string]EndpointFiles, error) { |
| 64 | contextDir := s.contextDir(name) |
| 65 | epFSs, err := os.ReadDir(contextDir) |
| 66 | if err != nil { |
| 67 | if os.IsNotExist(err) { |
| 68 | return map[string]EndpointFiles{}, nil |
| 69 | } |
| 70 | return nil, fmt.Errorf("failed to list TLS files for context %s: %w", name, err) |
| 71 | } |
| 72 | r := make(map[string]EndpointFiles) |
| 73 | for _, epFS := range epFSs { |
| 74 | if epFS.IsDir() { |
| 75 | fss, err := os.ReadDir(filepath.Join(contextDir, epFS.Name())) |
| 76 | if os.IsNotExist(err) { |
| 77 | continue |
| 78 | } |
| 79 | if err != nil { |
| 80 | return nil, fmt.Errorf("failed to list TLS files for endpoint %s: %w", epFS.Name(), err) |
| 81 | } |
| 82 | var files EndpointFiles |
| 83 | for _, fs := range fss { |
| 84 | if !fs.IsDir() { |
| 85 | files = append(files, fs.Name()) |
| 86 | } |
| 87 | } |
| 88 | r[epFS.Name()] = files |
| 89 | } |
| 90 | } |
| 91 | return r, nil |
| 92 | } |
| 93 | |
| 94 | // EndpointFiles is a slice of strings representing file names |
| 95 | type EndpointFiles []string |