refactor: replace deprecated functions
This commit is contained in:
		| @@ -8,7 +8,6 @@ import ( | |||||||
| 	"bufio" | 	"bufio" | ||||||
| 	"errors" | 	"errors" | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"io/ioutil" |  | ||||||
| 	"os" | 	"os" | ||||||
| 	"os/exec" | 	"os/exec" | ||||||
| 	"path" | 	"path" | ||||||
| @@ -22,7 +21,6 @@ import ( | |||||||
|  |  | ||||||
| 	"code.dumpstack.io/tools/out-of-tree/config" | 	"code.dumpstack.io/tools/out-of-tree/config" | ||||||
| 	"code.dumpstack.io/tools/out-of-tree/distro" | 	"code.dumpstack.io/tools/out-of-tree/distro" | ||||||
| 	"code.dumpstack.io/tools/out-of-tree/fs" |  | ||||||
| ) | ) | ||||||
|  |  | ||||||
| var Runtime = "docker" | var Runtime = "docker" | ||||||
| @@ -377,6 +375,48 @@ func (c Container) Run(workdir string, cmds []string) (out string, err error) { | |||||||
| 	return | 	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) { | func (c Container) Kernels() (kernels []distro.KernelInfo, err error) { | ||||||
| 	if !c.Exist() { | 	if !c.Exist() { | ||||||
| 		return | 		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 { | 	if err != nil { | ||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	bootfiles, err := ioutil.ReadDir(boot) | 	bootfiles, err := os.ReadDir(boot) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	for _, e := range moddirs { | ||||||
|  | 		var krel os.FileInfo | ||||||
|  | 		krel, err = e.Info() | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			return | 			return | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 	for _, krel := range moddirs { |  | ||||||
| 		c.Log.Debug().Msgf("generate config entry for %s", krel.Name()) | 		c.Log.Debug().Msgf("generate config entry for %s", krel.Name()) | ||||||
|  |  | ||||||
| 		var kernelFile, initrdFile string | 		var kernelFile, initrdFile string | ||||||
| 		kernelFile, err = fs.FindKernel(bootfiles, krel.Name()) | 		kernelFile, err = FindKernel(bootfiles, krel.Name()) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			c.Log.Warn().Msgf("cannot find kernel %s", krel.Name()) | 			c.Log.Warn().Msgf("cannot find kernel %s", krel.Name()) | ||||||
| 			continue | 			continue | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		initrdFile, err = fs.FindInitrd(bootfiles, krel.Name()) | 		initrdFile, err = FindInitrd(bootfiles, krel.Name()) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			c.Log.Warn().Msgf("cannot find initrd %s", krel.Name()) | 			c.Log.Warn().Msgf("cannot find initrd %s", krel.Name()) | ||||||
| 			continue | 			continue | ||||||
|   | |||||||
							
								
								
									
										30
									
								
								fs/fs.go
									
									
									
									
									
								
							
							
						
						
									
										30
									
								
								fs/fs.go
									
									
									
									
									
								
							| @@ -70,33 +70,3 @@ func FindBySubstring(dir, substring string) (k string, err error) { | |||||||
| 	err = errors.New("not found") | 	err = errors.New("not found") | ||||||
| 	return | 	return | ||||||
| } | } | ||||||
|  |  | ||||||
| func FindKernel(files []os.FileInfo, kname string) (name string, err error) { |  | ||||||
| 	for _, file := range files { |  | ||||||
| 		if strings.HasPrefix(file.Name(), "vmlinuz") { |  | ||||||
| 			if strings.Contains(file.Name(), kname) { |  | ||||||
| 				name = file.Name() |  | ||||||
| 				return |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	err = errors.New("cannot find kernel") |  | ||||||
| 	return |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func FindInitrd(files []os.FileInfo, kname string) (name string, err error) { |  | ||||||
| 	for _, file := range files { |  | ||||||
| 		if strings.HasPrefix(file.Name(), "initrd") || |  | ||||||
| 			strings.HasPrefix(file.Name(), "initramfs") { |  | ||||||
|  |  | ||||||
| 			if strings.Contains(file.Name(), kname) { |  | ||||||
| 				name = file.Name() |  | ||||||
| 				return |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	err = errors.New("cannot find kernel") |  | ||||||
| 	return |  | ||||||
| } |  | ||||||
|   | |||||||
| @@ -8,13 +8,14 @@ | |||||||
| package kernel | package kernel | ||||||
|  |  | ||||||
| import ( | import ( | ||||||
| 	"io/ioutil" | 	"os" | ||||||
| 	"os/exec" | 	"os/exec" | ||||||
| 	"strings" | 	"strings" | ||||||
|  |  | ||||||
| 	"github.com/rs/zerolog/log" | 	"github.com/rs/zerolog/log" | ||||||
| 	"github.com/zcalusic/sysinfo" | 	"github.com/zcalusic/sysinfo" | ||||||
|  |  | ||||||
|  | 	"code.dumpstack.io/tools/out-of-tree/container" | ||||||
| 	"code.dumpstack.io/tools/out-of-tree/distro" | 	"code.dumpstack.io/tools/out-of-tree/distro" | ||||||
| 	"code.dumpstack.io/tools/out-of-tree/fs" | 	"code.dumpstack.io/tools/out-of-tree/fs" | ||||||
| ) | ) | ||||||
| @@ -38,12 +39,11 @@ func GenHostKernels(download bool) (kernels []distro.KernelInfo, err error) { | |||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	kernelsBase := "/boot/" | 	kernelsBase := "/boot/" | ||||||
| 	bootfiles, err := ioutil.ReadDir(kernelsBase) | 	bootfiles, err := os.ReadDir(kernelsBase) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	// only for compatibility, docker is not really used |  | ||||||
| 	dist := distro.Distro{ | 	dist := distro.Distro{ | ||||||
| 		ID:      distroType, | 		ID:      distroType, | ||||||
| 		Release: si.OS.Version, | 		Release: si.OS.Version, | ||||||
| @@ -58,13 +58,13 @@ func GenHostKernels(download bool) (kernels []distro.KernelInfo, err error) { | |||||||
| 		log.Debug().Msgf("generate config entry for %s", krel) | 		log.Debug().Msgf("generate config entry for %s", krel) | ||||||
|  |  | ||||||
| 		var kernelFile, initrdFile string | 		var kernelFile, initrdFile string | ||||||
| 		kernelFile, err = fs.FindKernel(bootfiles, krel) | 		kernelFile, err = container.FindKernel(bootfiles, krel) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			log.Warn().Msgf("cannot find kernel %s", krel) | 			log.Warn().Msgf("cannot find kernel %s", krel) | ||||||
| 			continue | 			continue | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		initrdFile, err = fs.FindInitrd(bootfiles, krel) | 		initrdFile, err = container.FindInitrd(bootfiles, krel) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			log.Warn().Msgf("cannot find initrd %s", krel) | 			log.Warn().Msgf("cannot find initrd %s", krel) | ||||||
| 			continue | 			continue | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user