in plugin/step/install/linux/apt/apt.go [94:125]
func (s *Step) Execute() error {
installPackage := s.PackageName
if s.source != nil {
deb, err := s.findDEB()
if err != nil {
s.logger.Errorf("failed to discover DEB package")
return err
}
installPackage = filepath.Join(s.downloadPath, deb)
}
installed := false
if s.Version != "" {
if err := s.checkInstalled(); err != nil {
switch err.(type) {
case *exec.ExitError:
s.logger.Infof("dpkg-query exited with code %d", err.(*exec.ExitError).ExitCode())
installed = false
case *go2chef.ErrChefAlreadyInstalled:
s.logger.Infof("%s", err)
installed = true
}
}
}
if !installed {
return s.installChef(installPackage)
}
s.logger.Infof("%s specified is already installed, not reinstalling", installPackage)
return nil
}