vendor/github.com/spf13/afero/unionFile.go
changeset 260 445e01aede7e
parent 256 6d9efbef00a9
equal deleted inserted replaced
259:db4911b0c721 260:445e01aede7e
    63 
    63 
    64 func (f *UnionFile) ReadAt(s []byte, o int64) (int, error) {
    64 func (f *UnionFile) ReadAt(s []byte, o int64) (int, error) {
    65 	if f.Layer != nil {
    65 	if f.Layer != nil {
    66 		n, err := f.Layer.ReadAt(s, o)
    66 		n, err := f.Layer.ReadAt(s, o)
    67 		if (err == nil || err == io.EOF) && f.Base != nil {
    67 		if (err == nil || err == io.EOF) && f.Base != nil {
    68 			_, err = f.Base.Seek(o+int64(n), os.SEEK_SET)
    68 			_, err = f.Base.Seek(o+int64(n), io.SeekStart)
    69 		}
    69 		}
    70 		return n, err
    70 		return n, err
    71 	}
    71 	}
    72 	if f.Base != nil {
    72 	if f.Base != nil {
    73 		return f.Base.ReadAt(s, o)
    73 		return f.Base.ReadAt(s, o)
   266 		return f.Base.WriteString(s)
   266 		return f.Base.WriteString(s)
   267 	}
   267 	}
   268 	return 0, BADFD
   268 	return 0, BADFD
   269 }
   269 }
   270 
   270 
   271 func copyToLayer(base Fs, layer Fs, name string) error {
   271 func copyFile(base Fs, layer Fs, name string, bfh File) error {
   272 	bfh, err := base.Open(name)
       
   273 	if err != nil {
       
   274 		return err
       
   275 	}
       
   276 	defer bfh.Close()
       
   277 
       
   278 	// First make sure the directory exists
   272 	// First make sure the directory exists
   279 	exists, err := Exists(layer, filepath.Dir(name))
   273 	exists, err := Exists(layer, filepath.Dir(name))
   280 	if err != nil {
   274 	if err != nil {
   281 		return err
   275 		return err
   282 	}
   276 	}
   313 		lfh.Close()
   307 		lfh.Close()
   314 		return err
   308 		return err
   315 	}
   309 	}
   316 	return layer.Chtimes(name, bfi.ModTime(), bfi.ModTime())
   310 	return layer.Chtimes(name, bfi.ModTime(), bfi.ModTime())
   317 }
   311 }
       
   312 
       
   313 func copyToLayer(base Fs, layer Fs, name string) error {
       
   314 	bfh, err := base.Open(name)
       
   315 	if err != nil {
       
   316 		return err
       
   317 	}
       
   318 	defer bfh.Close()
       
   319 
       
   320 	return copyFile(base, layer, name, bfh)
       
   321 }
       
   322 
       
   323 func copyFileToLayer(base Fs, layer Fs, name string, flag int, perm os.FileMode) error {
       
   324 	bfh, err := base.OpenFile(name, flag, perm)
       
   325 	if err != nil {
       
   326 		return err
       
   327 	}
       
   328 	defer bfh.Close()
       
   329 
       
   330 	return copyFile(base, layer, name, bfh)
       
   331 }