change make ChangelogDir once

This commit is contained in:
MaineK00n
2020-07-30 10:22:31 +09:00
parent 7aa5638694
commit 6472c85af5

View File

@@ -501,6 +501,13 @@ func (o *debian) scanUnsecurePackages(updatable models.Packages) (models.VulnInf
return nil, err
}
if o.Distro.Family == config.Raspbian {
err := o.makeSaveChangelogDir()
if err != nil {
return nil, xerrors.Errorf("Failed to make directory to save changelog for Raspbian. err: %s", err)
}
}
// Collect CVE information of upgradable packages
vulnInfos, err := o.scanChangelogs(updatable, meta)
if err != nil {
@@ -583,6 +590,17 @@ func (o *debian) getUpdatablePackNames() (packNames []string, err error) {
cmd, r.ExitStatus, r.Stdout, r.Stderr)
}
func (o *debian) makeSaveChangelogDir() (err error) {
cmd := fmt.Sprintf(`mkdir -p /tmp/vuls`)
cmd = util.PrependProxyEnv(cmd)
r := o.exec(cmd, noSudo)
if !r.isSuccess() {
o.log.Warnf("Failed to Create Directory: %s", r)
return r.Error
}
return
}
func (o *debian) parseAptGetUpgrade(stdout string) (updatableNames []string, err error) {
startRe := regexp.MustCompile(`The following packages will be upgraded:`)
stopRe := regexp.MustCompile(`^(\d+) upgraded.*`)
@@ -808,20 +826,10 @@ func (o *debian) fetchParseChangelog(pack models.Package) ([]DetectedCveID, *mod
}
func (o *debian) getChangelogPath(pack models.Package) (string, error) {
cmd := ""
// TODO: Don't make it every time (only once at the beginning)
cmd = fmt.Sprintf(`mkdir -p /tmp/vuls`)
// `apt download` downloads deb package to current directory
cmd := fmt.Sprintf(`cd /tmp/vuls && apt download %s`, pack.Name)
cmd = util.PrependProxyEnv(cmd)
r := o.exec(cmd, noSudo)
if !r.isSuccess() {
o.log.Warnf("Failed to Create Directory: %s", r)
return "", r.Error
}
// `apt download` downloads deb package to current directory
cmd = fmt.Sprintf(`cd /tmp/vuls && apt download %s`, pack.Name)
cmd = util.PrependProxyEnv(cmd)
r = o.exec(cmd, noSudo)
if !r.isSuccess() {
o.log.Warnf("Failed to Fetch deb package: %s", r)
return "", r.Error