vendor/github.com/spf13/afero/unionFile.go
changeset 260 445e01aede7e
parent 256 6d9efbef00a9
--- a/vendor/github.com/spf13/afero/unionFile.go	Tue Aug 23 22:33:28 2022 +0200
+++ b/vendor/github.com/spf13/afero/unionFile.go	Tue Aug 23 22:39:43 2022 +0200
@@ -65,7 +65,7 @@
 	if f.Layer != nil {
 		n, err := f.Layer.ReadAt(s, o)
 		if (err == nil || err == io.EOF) && f.Base != nil {
-			_, err = f.Base.Seek(o+int64(n), os.SEEK_SET)
+			_, err = f.Base.Seek(o+int64(n), io.SeekStart)
 		}
 		return n, err
 	}
@@ -268,13 +268,7 @@
 	return 0, BADFD
 }
 
-func copyToLayer(base Fs, layer Fs, name string) error {
-	bfh, err := base.Open(name)
-	if err != nil {
-		return err
-	}
-	defer bfh.Close()
-
+func copyFile(base Fs, layer Fs, name string, bfh File) error {
 	// First make sure the directory exists
 	exists, err := Exists(layer, filepath.Dir(name))
 	if err != nil {
@@ -315,3 +309,23 @@
 	}
 	return layer.Chtimes(name, bfi.ModTime(), bfi.ModTime())
 }
+
+func copyToLayer(base Fs, layer Fs, name string) error {
+	bfh, err := base.Open(name)
+	if err != nil {
+		return err
+	}
+	defer bfh.Close()
+
+	return copyFile(base, layer, name, bfh)
+}
+
+func copyFileToLayer(base Fs, layer Fs, name string, flag int, perm os.FileMode) error {
+	bfh, err := base.OpenFile(name, flag, perm)
+	if err != nil {
+		return err
+	}
+	defer bfh.Close()
+
+	return copyFile(base, layer, name, bfh)
+}