modules/npm: Preserve the original package.json if it exists

Fixes #7690
This commit is contained in:
Bjørn Erik Pedersen
2020-09-14 17:09:34 +02:00
parent cd830bb027
commit 214afe4c1b
3 changed files with 31 additions and 15 deletions

View File

@@ -26,28 +26,29 @@ import (
// CopyFile copies a file.
func CopyFile(fs afero.Fs, from, to string) error {
sf, err := os.Open(from)
sf, err := fs.Open(from)
if err != nil {
return err
}
defer sf.Close()
df, err := os.Create(to)
df, err := fs.Create(to)
if err != nil {
return err
}
defer df.Close()
_, err = io.Copy(df, sf)
if err == nil {
si, err := os.Stat(from)
if err != nil {
err = os.Chmod(to, si.Mode())
if err != nil {
return err
}
}
if err != nil {
return err
}
si, err := fs.Stat(from)
if err != nil {
err = fs.Chmod(to, si.Mode())
if err != nil {
return err
}
}
return nil
}