vagrant/plugins/provisioners/chef/cap/linux/chef_installed.rb
oss-core-libraries-dashboard[bot] ea57f40b89
Some checks failed
/ sync-acceptance (push) Has been cancelled
Vagrant Ruby Tests / Vagrant unit tests on Ruby 3.1 (push) Has been cancelled
Vagrant Ruby Tests / Vagrant unit tests on Ruby 3.2 (push) Has been cancelled
Vagrant Ruby Tests / Vagrant unit tests on Ruby 3.3 (push) Has been cancelled
Vagrant Ruby Tests / Vagrant unit tests on Ruby 3.4 (push) Has been cancelled
[COMPLIANCE] Update Copyright and License Headers (#13752)
Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com>
2025-12-04 17:07:40 +05:30

27 lines
850 B
Ruby

# Copyright IBM Corp. 2010, 2025
# SPDX-License-Identifier: BUSL-1.1
module VagrantPlugins
module Chef
module Cap
module Linux
module ChefInstalled
# Check if Chef is installed at the given version.
# @return [true, false]
def self.chef_installed(machine, product, version)
product_name = product == 'chef-workstation' ? 'chef-workstation' : 'chef'
verify_bin = product_name == 'chef-workstation' ? 'chef' : 'chef-client'
verify_path = "/opt/#{product_name}/bin/#{verify_bin}"
command = "test -x #{verify_path}"
if version != :latest
command << "&& #{verify_path} --version | grep '#{version}'"
end
machine.communicate.test(command, sudo: true)
end
end
end
end
end
end