refactor: replace deprecated functions
This commit is contained in:
@ -8,7 +8,6 @@ import (
|
||||
"bufio"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path"
|
||||
@ -22,7 +21,6 @@ import (
|
||||
|
||||
"code.dumpstack.io/tools/out-of-tree/config"
|
||||
"code.dumpstack.io/tools/out-of-tree/distro"
|
||||
"code.dumpstack.io/tools/out-of-tree/fs"
|
||||
)
|
||||
|
||||
var Runtime = "docker"
|
||||
@ -377,6 +375,48 @@ func (c Container) Run(workdir string, cmds []string) (out string, err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func FindKernel(entries []os.DirEntry, kname string) (name string, err error) {
|
||||
for _, e := range entries {
|
||||
var fi os.FileInfo
|
||||
fi, err = e.Info()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if strings.HasPrefix(fi.Name(), "vmlinuz") {
|
||||
if strings.Contains(fi.Name(), kname) {
|
||||
name = fi.Name()
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
err = errors.New("cannot find kernel")
|
||||
return
|
||||
}
|
||||
|
||||
func FindInitrd(entries []os.DirEntry, kname string) (name string, err error) {
|
||||
for _, e := range entries {
|
||||
var fi os.FileInfo
|
||||
fi, err = e.Info()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if strings.HasPrefix(fi.Name(), "initrd") ||
|
||||
strings.HasPrefix(fi.Name(), "initramfs") {
|
||||
|
||||
if strings.Contains(fi.Name(), kname) {
|
||||
name = fi.Name()
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
err = errors.New("cannot find kernel")
|
||||
return
|
||||
}
|
||||
|
||||
func (c Container) Kernels() (kernels []distro.KernelInfo, err error) {
|
||||
if !c.Exist() {
|
||||
return
|
||||
@ -392,27 +432,33 @@ func (c Container) Kernels() (kernels []distro.KernelInfo, err error) {
|
||||
}
|
||||
}
|
||||
|
||||
moddirs, err := ioutil.ReadDir(libmodules)
|
||||
moddirs, err := os.ReadDir(libmodules)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
bootfiles, err := ioutil.ReadDir(boot)
|
||||
bootfiles, err := os.ReadDir(boot)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
for _, krel := range moddirs {
|
||||
for _, e := range moddirs {
|
||||
var krel os.FileInfo
|
||||
krel, err = e.Info()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
c.Log.Debug().Msgf("generate config entry for %s", krel.Name())
|
||||
|
||||
var kernelFile, initrdFile string
|
||||
kernelFile, err = fs.FindKernel(bootfiles, krel.Name())
|
||||
kernelFile, err = FindKernel(bootfiles, krel.Name())
|
||||
if err != nil {
|
||||
c.Log.Warn().Msgf("cannot find kernel %s", krel.Name())
|
||||
continue
|
||||
}
|
||||
|
||||
initrdFile, err = fs.FindInitrd(bootfiles, krel.Name())
|
||||
initrdFile, err = FindInitrd(bootfiles, krel.Name())
|
||||
if err != nil {
|
||||
c.Log.Warn().Msgf("cannot find initrd %s", krel.Name())
|
||||
continue
|
||||
|
Reference in New Issue
Block a user