class Specinfra::Command::Freebsd::V8::Package
Public Class Methods
check_is_installed(package, version = nil)
click to toggle source
# File lib/specinfra/command/freebsd/v8/package.rb, line 20 def check_is_installed(package, version = nil) if version shell_ifelse( shell_check_pkgng(), "pkg query %v #{escape(package)} | grep -- #{escape(version)}", "pkg_info -I #{escape(package)}-#{escape(version)}" ) else pattern = pkg_info_pattern(package) shell_ifelse( shell_check_pkgng(), "pkg info -e #{escape(package)}", "pkg_info -Ix #{escape(pattern)}" ) end end
get_version(package, _options = nil)
click to toggle source
# File lib/specinfra/command/freebsd/v8/package.rb, line 45 def get_version(package, _options = nil) pattern = pkg_info_pattern(package) shell_ifelse( shell_check_pkgng(), "pkg query %v #{escape(package)}", "pkg_info -Ix #{escape(pattern)} | cut -f 1 -w | sed -n 's/^#{escape(package)}-//p'" ) end
install(package, _version = nil, option = '')
click to toggle source
# File lib/specinfra/command/freebsd/v8/package.rb, line 37 def install(package, _version = nil, option = '') shell_ifelse( shell_check_pkgng(), "pkg install -y #{option} #{package}", "pkg_add -r #{option} #{package}" ) end
pkg_info_pattern(package)
click to toggle source
# File lib/specinfra/command/freebsd/v8/package.rb, line 3 def pkg_info_pattern(package) # allow portorigin (origin/portname) as package argument, so that we get # similar answers from either "pkg info" and "pkg_info" "^#{package.split('/', 2)[-1]}-[0-9][0-9a-zA-Z_\.,]*$" end
shell_check_pkgng()
click to toggle source
# File lib/specinfra/command/freebsd/v8/package.rb, line 9 def shell_check_pkgng # See manpage of pkg(8), the paragraph devoted to -N flag # https://www.freebsd.org/cgi/man.cgi?query=pkg 'TMPDIR=/dev/null ASSUME_ALWAYS_YES=1 PACKAGESITE=file:///nonexist ' \ 'pkg info -x \'pkg(-devel)?$\' > /dev/null 2>&1' end
shell_ifelse(cond, stmt_t, stmt_f)
click to toggle source
# File lib/specinfra/command/freebsd/v8/package.rb, line 16 def shell_ifelse(cond, stmt_t, stmt_f) "if #{cond}; then #{stmt_t}; else #{stmt_f}; fi" end