// Copyright 2022 The Gitea Authors. All rights reserved.// SPDX-License-Identifier: MIT package util import ( "io" "os") // CopyFile copies file from source to target path.func CopyFile(src, dest string) error { si, err := os.Lstat(src) if err != nil { return err } sr, err := os.Open(src) if err != nil { return err } defer sr.Close() dw, err := os.Create(dest) if err != nil { return err } defer dw.Close() if _, err = io.Copy(dw, sr); err != nil { return err } if err = os.Chtimes(dest, si.ModTime(), si.ModTime()); err != nil { return err } return os.Chmod(dest, si.Mode())}
// Copyright 2022 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT
package util
import (
"io"
"os"
)
// CopyFile copies file from source to target path.
func CopyFile(src, dest string) error {
si, err := os.Lstat(src)
if err != nil {
return err
}
sr, err := os.Open(src)
if err != nil {
return err
}
defer sr.Close()
dw, err := os.Create(dest)
if err != nil {
return err
}
defer dw.Close()
if _, err = io.Copy(dw, sr); err != nil {
return err
}
if err = os.Chtimes(dest, si.ModTime(), si.ModTime()); err != nil {
return err
}
return os.Chmod(dest, si.Mode())
}