46 lines
1,018 B
Ruby
46 lines
1,018 B
Ruby
|
module MacOSSystem
|
||
|
def os_name
|
||
|
"macOS"
|
||
|
end
|
||
|
|
||
|
def install(packages)
|
||
|
missing_packages = packages.reject { |pkg| package_installed?(pkg) }
|
||
|
|
||
|
if missing_packages.empty?
|
||
|
puts "All packages are already installed."
|
||
|
return
|
||
|
end
|
||
|
|
||
|
pkg_list = missing_packages.join(' ')
|
||
|
puts "Installing missing packages: #{pkg_list}"
|
||
|
|
||
|
success = system("brew install #{pkg_list}")
|
||
|
|
||
|
unless success
|
||
|
puts "Failed to install some packages."
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def package_installed?(package)
|
||
|
system("brew list --formula | grep -qx #{package}")
|
||
|
end
|
||
|
|
||
|
def uninstall(packages)
|
||
|
installed_packages = packages.select { |pkg| package_installed?(pkg) }
|
||
|
|
||
|
if installed_packages.empty?
|
||
|
puts "None of the specified packages are installed."
|
||
|
return
|
||
|
end
|
||
|
|
||
|
pkg_list = installed_packages.join(' ')
|
||
|
puts "Uninstalling packages: #{pkg_list}"
|
||
|
|
||
|
success = system("brew uninstall #{pkg_list}")
|
||
|
|
||
|
unless success
|
||
|
puts "Failed to uninstall some packages."
|
||
|
end
|
||
|
end
|
||
|
end
|