30 lines
621 B
Go
30 lines
621 B
Go
package sysinfo
|
|
|
|
import "os/exec"
|
|
|
|
func (a *App) ensureDeps() error {
|
|
req := map[string]string{
|
|
"smartctl": "smartmontools",
|
|
"cryptsetup":"cryptsetup",
|
|
"sfdisk": "util-linux",
|
|
"lsblk": "util-linux",
|
|
"blkid": "util-linux",
|
|
"ip": "iproute2",
|
|
"ethtool": "ethtool",
|
|
"dmidecode": "dmidecode",
|
|
"sensors": "lm-sensors",
|
|
"curl": "curl",
|
|
"jc": "jc",
|
|
"dpkg": "dpkg",
|
|
}
|
|
for bin, pkg := range req {
|
|
if _, err := exec.LookPath(bin); err != nil {
|
|
a.logf("apt install %s", pkg)
|
|
if err := a.aptInstall(pkg); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
}
|
|
return nil
|
|
}
|