Copy any found sysextensions into active+passive efi dir (#372)

This commit is contained in:
Itxaka
2024-06-07 16:45:50 +02:00
committed by GitHub
parent c1d1a33114
commit b176b47f56
4 changed files with 306 additions and 0 deletions

View File

@@ -21,6 +21,7 @@ package fsutils
import (
"errors"
"io"
"io/fs"
"os"
"path/filepath"
@@ -243,3 +244,32 @@ func readDir(fs v1.FS, dirname string) ([]fs.DirEntry, error) {
sort.Slice(dirs, func(i, j int) bool { return dirs[i].Name() < dirs[j].Name() })
return dirs, nil
}
// Copy copies src to dst like the cp command.
func Copy(fs v1.FS, src, dst string) error {
if dst == src {
return os.ErrInvalid
}
srcF, err := fs.Open(src)
if err != nil {
return err
}
defer srcF.Close()
info, err := srcF.Stat()
if err != nil {
return err
}
dstF, err := fs.OpenFile(dst, os.O_RDWR|os.O_CREATE|os.O_TRUNC, info.Mode())
if err != nil {
return err
}
defer dstF.Close()
if _, err := io.Copy(dstF, srcF); err != nil {
return err
}
return nil
}