func()

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
}