summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--internal/builder/builder.go37
-rw-r--r--internal/storage/files/writer.go59
2 files changed, 48 insertions, 48 deletions
diff --git a/internal/builder/builder.go b/internal/builder/builder.go
index 90df0f1..7b12315 100644
--- a/internal/builder/builder.go
+++ b/internal/builder/builder.go
@@ -2,6 +2,9 @@ package builder
 
 import (
 	"fmt"
+	"io"
+	"io/fs"
+	"os"
 	"path"
 	"path/filepath"
 	"slices"
@@ -34,6 +37,38 @@ func joinSourcePath(src string) func(string) string {
 	}
 }
 
+func copyRecursive(storage storage.Writer, src string) error {
+	return filepath.WalkDir(src, func(path string, d fs.DirEntry, err error) error {
+		if err != nil {
+			return err
+		}
+		rel, err := filepath.Rel(src, path)
+		if err != nil {
+			return err
+		}
+		if d.IsDir() {
+			return storage.Mkdirp(rel)
+		}
+
+		sf, err := os.Open(path)
+		if err != nil {
+			return err
+		}
+		defer sf.Close()
+		df, err := storage.OpenFileAndVariants(rel)
+		if err != nil {
+			return err
+		}
+		defer df.Close()
+		if _, err := io.Copy(df, sf); err != nil {
+			return err
+		}
+
+		return nil
+	})
+
+}
+
 func build(ioConfig *IOConfig, config *config.Config, log *log.Logger) (*Result, error) {
 	storage := files.NewWriter(ioConfig.Destination, log, &files.Options{
 		Compress: !ioConfig.Development,
@@ -46,7 +81,7 @@ func build(ioConfig *IOConfig, config *config.Config, log *log.Logger) (*Result,
 		Hashes: make([]string, 0),
 	}
 
-	err := storage.CopyRecursive(joinSource("static"))
+	err := copyRecursive(storage, joinSource("static"))
 	if err != nil {
 		return nil, errors.WithMessage(err, "could not copy static files")
 	}
diff --git a/internal/storage/files/writer.go b/internal/storage/files/writer.go
index f0fe6a9..cd227c0 100644
--- a/internal/storage/files/writer.go
+++ b/internal/storage/files/writer.go
@@ -4,7 +4,6 @@ import (
 	"compress/gzip"
 	"context"
 	"io"
-	"io/fs"
 	"os"
 	"path/filepath"
 	"strings"
@@ -39,48 +38,16 @@ func NewWriter(outputDirectory string, logger *log.Logger, opts *Options) *Files
 	}
 }
 
-func (f *Files) CopyRecursive(src string) error {
-	return filepath.WalkDir(src, func(path string, d fs.DirEntry, err error) error {
-		if err != nil {
-			return err
-		}
-		rel, err := filepath.Rel(src, path)
-		if err != nil {
-			return err
-		}
-		if d.IsDir() {
-			return f.mkdirp(rel)
-		}
-
-		sf, err := os.Open(path)
-		if err != nil {
-			return err
-		}
-		defer sf.Close()
-		df, err := f.openFileAndVariants(filepath.Join(f.outputDirectory, rel))
-		if err != nil {
-			return err
-		}
-		defer df.Close()
-		if _, err := io.Copy(df, sf); err != nil {
-			return err
-		}
-
-		return nil
-	})
-}
-
 func (f *Files) Open(filename string) (io.ReadCloser, error) {
 	return os.Open(f.join(filename))
 }
 
 func (f *Files) OutputToFile(output io.Reader, filename string) error {
-	fn := f.join(filename)
-	if err := f.mkdirp(filepath.Dir(filename)); err != nil {
+	if err := f.Mkdirp(filepath.Dir(filename)); err != nil {
 		return err
 	}
-	f.log.Debug("outputting file", "filename", fn)
-	file, err := f.openFileAndVariants(fn)
+	f.log.Debug("outputting file", "filename", filename)
+	file, err := f.OpenFileAndVariants(filename)
 	if err != nil {
 		return errors.WithMessage(err, "could not open output file")
 	}
@@ -94,12 +61,11 @@ func (f *Files) OutputToFile(output io.Reader, filename string) error {
 }
 
 func (f *Files) RenderToFile(component templ.Component, filename string) error {
-	fn := f.join(filename)
-	if err := f.mkdirp(filepath.Dir(filename)); err != nil {
+	if err := f.Mkdirp(filepath.Dir(filename)); err != nil {
 		return err
 	}
 	f.log.Debug("outputting file", "filename", filename)
-	file, err := f.openFileAndVariants(fn)
+	file, err := f.OpenFileAndVariants(filename)
 	if err != nil {
 		return errors.WithMessage(err, "could not open output file")
 	}
@@ -113,12 +79,11 @@ func (f *Files) RenderToFile(component templ.Component, filename string) error {
 }
 
 func (f *Files) WriterToFile(writer io.WriterTo, filename string) error {
-	fn := f.join(filename)
-	if err := f.mkdirp(filepath.Dir(filename)); err != nil {
+	if err := f.Mkdirp(filepath.Dir(filename)); err != nil {
 		return err
 	}
-	f.log.Debug("outputting file", "filename", fn)
-	file, err := f.openFileAndVariants(fn)
+	f.log.Debug("outputting file", "filename", filename)
+	file, err := f.OpenFileAndVariants(filename)
 	if err != nil {
 		return errors.WithMessage(err, "could not open output file")
 	}
@@ -196,15 +161,15 @@ func multiOpenFile(filename string) (*MultiWriteCloser, error) {
 	}, nil
 }
 
-func (f *Files) openFileAndVariants(filename string) (io.WriteCloser, error) {
+func (f *Files) OpenFileAndVariants(filename string) (io.WriteCloser, error) {
 	if f.options.Compress {
-		return multiOpenFile(filename)
+		return multiOpenFile(f.join(filename))
 	}
 
-	return openFileWrite(filename)
+	return openFileWrite(f.join(filename))
 }
 
-func (f *Files) mkdirp(dir string) error {
+func (f *Files) Mkdirp(dir string) error {
 	f.log.Debug("creating directory", "dir", dir)
 	err := os.MkdirAll(filepath.Join(f.outputDirectory, dir), 0755)