Files
herolib/lib/core/code/model_folder.v
2025-10-12 12:30:19 +03:00

40 lines
670 B
V

module code
import incubaid.herolib.core.pathlib
pub interface IBasicFolder {
name string
files []IFile
modules []Module
write(string, WriteOptions) !
}
pub struct BasicFolder {
pub:
name string
files []IFile
folders []IBasicFolder
modules []Module
}
pub fn (f BasicFolder) write(path string, options WriteOptions) ! {
mut dir := pathlib.get_dir(
path: '${path}/${f.name}'
empty: options.overwrite
)!
if !options.overwrite && dir.exists() {
return
}
for file in f.files {
file.write(dir.path, options)!
}
for folder in f.folders {
folder.write(dir.path, options)!
}
for mod in f.modules {
mod.write(dir.path, options)!
}
}