all repos — homestead @ 1f86478ad670bdecdd2fa26d17ec23ce902dd8a0

Code for my website

pre-compress static files

Alan Pearce
commit

1f86478ad670bdecdd2fa26d17ec23ce902dd8a0

parent

8bfc840b7f0f766d8826b03ed437202c06e9e4a2

1 file changed, 29 insertions(+), 0 deletions(-)

changed files
M internal/builder/files.gointernal/builder/files.go
@@ -3,7 +3,9 @@
import ( "compress/gzip" "io" + "io/fs" "os" + "path/filepath" "github.com/andybalholm/brotli" )
@@ -81,3 +83,30 @@ } else {
return openFileWrite(filename) } } + +func copyRecursive(src, dst string) error { + return filepath.WalkDir(src, func(path string, d fs.DirEntry, err error) error { + rel, err := filepath.Rel(src, path) + if err != nil { + return err + } + if d.IsDir() { + return mkdirp(dst, rel) + } else { + sf, err := os.Open(path) + if err != nil { + return err + } + defer sf.Close() + df, err := openFileAndVariants(filepath.Join(dst, rel)) + if err != nil { + return err + } + defer df.Close() + if _, err := io.Copy(df, sf); err != nil { + return err + } + } + return nil + }) +}