mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-10-23 18:42:26 +00:00
- Add the experimental [deacode](https://pkg.go.dev/golang.org/x/tools/internal/cmd/deadcode) linter to Forgejo. - To deal with false positives that can happen due to build tags or with code that's currently only referenced by test code, the output of the tool is compared against a known-good output. - This commit doesn't make any attempt to remove any deadcode. (cherry picked from commitac462279e9) (cherry picked from commitb5ea6e85ac) (cherry picked from commit5915f3643c) [CLEANUP] Remove deadcode - This is deadcode since https://codeberg.org/forgejo/forgejo/pulls/1802 removed the usage of it. (cherry picked from commitd840b9923e) (cherry picked from commit9442bab626) (cherry picked from commit0de9d18863) (cherry picked from commit26abf78374) (cherry picked from commit05d3a143c3) (cherry picked from commit4b3d38d5e1) (cherry picked from commita726e71986) (cherry picked from commitcb62ae5b98) (cherry picked from commit8195ba06d5) (cherry picked from commit4570fb591a) (cherry picked from commit1f4d33de2b)
38 lines
619 B
Go
38 lines
619 B
Go
// 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())
|
|
}
|