File: package.rb

package info (click to toggle)
ruby-specinfra 2.89.0-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 2,412 kB
  • sloc: ruby: 10,338; sh: 4; makefile: 4
file content (24 lines) | stat: -rw-r--r-- 709 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Specinfra::Command::Alpine::Base::Package < Specinfra::Command::Linux::Base::Package
  class << self
    def check_is_installed(package, version = nil)
      if version.nil? then
        pkg = escape(package)
        "apk info -qe #{pkg}"
      else
        pkg = "#{package}-#{version}"
        "apk info -v | grep -w -- '^#{Regexp.escape(pkg)}'"
      end
    end

    alias_method :check_is_installed_by_apk, :check_is_installed

    def install(package, version = nil, _option = '')
      pkg = [escape(package), version].compact.join('=')
      "apk add -U #{pkg}"
    end

    def get_version(package, _opts = nil)
      "apk version #{package} | tail -n1 | awk '{ print $3; }'"
    end
  end
end