feat(adapter): define Adapter interface and FileSet

This commit is contained in:
2026-05-23 02:45:50 +01:00
parent e4719b78a0
commit 6ab8d149e1
5 changed files with 175 additions and 0 deletions
+32
View File
@@ -0,0 +1,32 @@
package adapter
import "os"
type File struct {
Dest string
SymlinkTarget string
Content []byte
Mode os.FileMode
Kind Kind
}
type FileSet struct {
files []File
}
func NewFileSet() *FileSet { return &FileSet{} }
func (fs *FileSet) Add(f File) {
if f.Mode == 0 && f.Kind == RenderedFile {
f.Mode = 0o644
}
fs.files = append(fs.files, f)
}
func (fs *FileSet) ForEach(fn func(File)) {
for _, f := range fs.files {
fn(f)
}
}
func (fs *FileSet) Len() int { return len(fs.files) }