Sha256: 8aa07957d4da0d7562913690de5b16ceba5abe0cc04f6f11e4d53b5e5d52a234
Contents?: true
Size: 1.57 KB
Versions: 1
Compression:
Stored size: 1.57 KB
Contents
require 'open3' require 'wright/dry_run' require 'wright/provider' require 'wright/provider/package' module Wright class Provider class Package # Apt package provider. Used as a provider for # {Resource::Package} on Debian-based systems. class Apt < Wright::Provider::Package # @return [Array<String>] the installed package versions def installed_versions cmd = 'dpkg-query' args = ['-s', @resource.name] cmd_stdout, _, cmd_status = Open3.capture3(env, cmd, *args) installed_re = /^Status: install ok installed$/ if cmd_status.success? && installed_re =~ cmd_stdout /^Version: (?<version>.*)$/ =~ cmd_stdout [version] else [] end end private def install_package package = @resource.name unless_dry_run("install package: '#{package}'") do apt_get(:install, package, @resource.version) end end def remove_package package = @resource.name unless_dry_run("remove package: '#{package}'") do apt_get(:remove, package) end end def apt_get(action, package, version = nil) package_version = version.nil? ? '' : "=#{version}" cmd = 'apt-get' args = [action.to_s, '-qy', package + package_version] exec_or_fail(cmd, args, "cannot #{action} package '#{package}'") end def env { 'DEBIAN_FRONTEND' => 'noninteractive' } end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
wright-0.2.0 | lib/wright/provider/package/apt.rb |