summaryrefslogtreecommitdiffstats
path: root/modules/util/legacy.go
diff options
context:
space:
mode:
Diffstat (limited to 'modules/util/legacy.go')
-rw-r--r--modules/util/legacy.go38
1 files changed, 38 insertions, 0 deletions
diff --git a/modules/util/legacy.go b/modules/util/legacy.go
new file mode 100644
index 0000000..2d4de01
--- /dev/null
+++ b/modules/util/legacy.go
@@ -0,0 +1,38 @@
+// 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())
+}