specinfra 2.62.0 → 2.63.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/specinfra/command/freebsd/base/package.rb +16 -4
- data/lib/specinfra/command/freebsd/v6/package.rb +19 -0
- data/lib/specinfra/command/freebsd/v7/package.rb +2 -0
- data/lib/specinfra/command/freebsd/v7.rb +2 -0
- data/lib/specinfra/command/freebsd/v8/package.rb +54 -0
- data/lib/specinfra/command/freebsd/v8.rb +2 -0
- data/lib/specinfra/command/freebsd/v9/package.rb +1 -47
- data/lib/specinfra/command.rb +9 -4
- data/lib/specinfra/version.rb +1 -1
- data/spec/command/freebsd/package_spec.rb +68 -5
- metadata +7 -4
- data/lib/specinfra/command/freebsd/v10/package.rb +0 -31
- data/lib/specinfra/command/freebsd/v10.rb +0 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9f008a62e9df588d9f48580058a5fff5fadbe5c8
|
4
|
+
data.tar.gz: 4aee183c7c190d945245b85c5c76cc98dcf4b7e4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 95d908aa7bd24ba5dc84d7a773ac9790bba3f13bca5c017270110b8892965daa2302b0f0474c8eb869b8c68389db7476aeb784db726f79b8668a8119fbf12302
|
7
|
+
data.tar.gz: 717b4f3a56efa608c17ea937fd3b2c566ddc7c73ed632c3039937c8ba473ecc814b758f3cd9d18cb7e4cdb02d107fb6f2a061785d6980de099ba8e2627e66958
|
@@ -2,18 +2,30 @@ class Specinfra::Command::Freebsd::Base::Package < Specinfra::Command::Base::Pac
|
|
2
2
|
class << self
|
3
3
|
def check_is_installed(package, version=nil)
|
4
4
|
if version
|
5
|
-
"
|
5
|
+
"pkg query %v #{escape(package)} | grep -- #{escape(version)}"
|
6
6
|
else
|
7
|
-
"
|
7
|
+
"pkg info -e #{escape(package)}"
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
11
|
+
alias :check_is_installed_by_pkg :check_is_installed
|
12
|
+
|
13
|
+
def check_is_installed_by_rpm(package, version=nil)
|
14
|
+
cmd = "rpm -q #{escape(package)}"
|
15
|
+
if version
|
16
|
+
cmd = "#{cmd} | grep -w -- #{escape(package)}-#{escape(version)}"
|
17
|
+
end
|
18
|
+
cmd
|
19
|
+
end
|
20
|
+
|
21
|
+
alias :check_is_installed_by_yum :check_is_installed_by_rpm
|
22
|
+
|
11
23
|
def install(package, version=nil, option='')
|
12
|
-
"
|
24
|
+
"pkg install -y #{option} #{package}"
|
13
25
|
end
|
14
26
|
|
15
27
|
def get_version(package, opts=nil)
|
16
|
-
"
|
28
|
+
"pkg query %v #{escape(package)}"
|
17
29
|
end
|
18
30
|
end
|
19
31
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class Specinfra::Command::Freebsd::V6::Package < Specinfra::Command::Base::Package
|
2
|
+
class << self
|
3
|
+
def check_is_installed(package, version=nil)
|
4
|
+
if version
|
5
|
+
"pkg_info -I #{escape(package)}-#{escape(version)}"
|
6
|
+
else
|
7
|
+
"pkg_info -Ix #{escape(package)}"
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def install(package, version=nil, option='')
|
12
|
+
"pkg_add -r #{option} install #{package}"
|
13
|
+
end
|
14
|
+
|
15
|
+
def get_version(package, opts=nil)
|
16
|
+
"pkg_info -Ix #{escape(package)} | cut -f 1 -w | sed -n 's/^#{escape(package)}-//p'"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
class Specinfra::Command::Freebsd::V8::Package < Specinfra::Command::Freebsd::Base::Package
|
2
|
+
class << self
|
3
|
+
def pkg_info_pattern(package)
|
4
|
+
# allow portorigin (origin/portname) as package argument, so that we get
|
5
|
+
# similar answers from either "pkg info" and "pkg_info"
|
6
|
+
"^#{package.split('/', 2)[-1]}-[0-9][0-9a-zA-Z_\.,]*$"
|
7
|
+
end
|
8
|
+
|
9
|
+
def shell_check_pkgng
|
10
|
+
# See manpage of pkg(8), the paragraph devoted to -N flag
|
11
|
+
# https://www.freebsd.org/cgi/man.cgi?query=pkg
|
12
|
+
'TMPDIR=/dev/null ASSUME_ALWAYS_YES=1 PACKAGESITE=file:///nonexist ' \
|
13
|
+
'pkg info -x \'pkg(-devel)?$\' > /dev/null 2>&1'
|
14
|
+
end
|
15
|
+
|
16
|
+
def shell_ifelse(cond, stmt_t, stmt_f)
|
17
|
+
"if #{cond}; then #{stmt_t}; else #{stmt_f}; fi"
|
18
|
+
end
|
19
|
+
|
20
|
+
def check_is_installed(package, version = nil)
|
21
|
+
if version
|
22
|
+
shell_ifelse(
|
23
|
+
shell_check_pkgng(),
|
24
|
+
"pkg query %v #{escape(package)} | grep -- #{escape(version)}",
|
25
|
+
"pkg_info -I #{escape(package)}-#{escape(version)}"
|
26
|
+
)
|
27
|
+
else
|
28
|
+
pattern = pkg_info_pattern(package)
|
29
|
+
shell_ifelse(
|
30
|
+
shell_check_pkgng(),
|
31
|
+
"pkg info -e #{escape(package)}",
|
32
|
+
"pkg_info -Ix #{escape(pattern)}"
|
33
|
+
)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def install(package, _version = nil, option = '')
|
38
|
+
shell_ifelse(
|
39
|
+
shell_check_pkgng(),
|
40
|
+
"pkg install -y #{option} #{package}",
|
41
|
+
"pkg_add -r #{option} install #{package}"
|
42
|
+
)
|
43
|
+
end
|
44
|
+
|
45
|
+
def get_version(package, _options = nil)
|
46
|
+
pattern = pkg_info_pattern(package)
|
47
|
+
shell_ifelse(
|
48
|
+
shell_check_pkgng(),
|
49
|
+
"pkg query %v #{escape(package)}",
|
50
|
+
"pkg_info -Ix #{escape(pattern)} | cut -f 1 -w | sed -n 's/^#{escape(package)}-//p'"
|
51
|
+
)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -1,48 +1,2 @@
|
|
1
|
-
class Specinfra::Command::Freebsd::V9::Package < Specinfra::Command::Freebsd::
|
2
|
-
class << self
|
3
|
-
def shell_check_pkgng
|
4
|
-
# This test works on FreeBSD >= 9.2. On 9.1, pkg has no -N option. Also,
|
5
|
-
# on fresh 9.1 installation there is only a placeholder pkg command,
|
6
|
-
# which immediatelly enters interactive mode and wants to install pkg
|
7
|
-
# package (so it's not suitable for a test like ours). On 9.0, there
|
8
|
-
# seems to be no pkg command/package at all.
|
9
|
-
"test `sysctl -n kern.osreldate` -ge 902000 && pkg -N > /dev/null 2>&1"
|
10
|
-
end
|
11
|
-
|
12
|
-
def shell_ifelse(cond, stmt_t, stmt_f)
|
13
|
-
"if #{cond}; then #{stmt_t}; else #{stmt_f}; fi"
|
14
|
-
end
|
15
|
-
|
16
|
-
def check_is_installed(package, version=nil)
|
17
|
-
if version
|
18
|
-
shell_ifelse(
|
19
|
-
shell_check_pkgng(),
|
20
|
-
"pkg query %v #{escape(package)} | grep -- #{escape(version)}",
|
21
|
-
"pkg_info -I #{escape(package)}-#{escape(version)}"
|
22
|
-
)
|
23
|
-
else
|
24
|
-
shell_ifelse(
|
25
|
-
shell_check_pkgng(),
|
26
|
-
"pkg info -e #{escape(package)}",
|
27
|
-
"pkg_info -Ix #{escape(package)}"
|
28
|
-
)
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
def install(package, version=nil, option='')
|
33
|
-
shell_ifelse(
|
34
|
-
shell_check_pkgng(),
|
35
|
-
"pkg install -y #{option} #{package}",
|
36
|
-
"pkg_add -r #{option} install #{package}"
|
37
|
-
)
|
38
|
-
end
|
39
|
-
|
40
|
-
def get_version(package, opts=nil)
|
41
|
-
shell_ifelse(
|
42
|
-
shell_check_pkgng(),
|
43
|
-
"pkg query %v #{escape(package)}",
|
44
|
-
"pkg_info -Ix #{escape(package)} | cut -f 1 -w | sed -n 's/^#{escape(package)}-//p'"
|
45
|
-
)
|
46
|
-
end
|
47
|
-
end
|
1
|
+
class Specinfra::Command::Freebsd::V9::Package < Specinfra::Command::Freebsd::V8::Package
|
48
2
|
end
|
data/lib/specinfra/command.rb
CHANGED
@@ -242,15 +242,20 @@ require 'specinfra/command/freebsd/base/user'
|
|
242
242
|
# FreeBSD V6 (inherit FreeBSD)
|
243
243
|
require 'specinfra/command/freebsd/v6'
|
244
244
|
require 'specinfra/command/freebsd/v6/user'
|
245
|
+
require 'specinfra/command/freebsd/v6/package'
|
246
|
+
|
247
|
+
# FreeBSD V7 (inherit FreeBSD)
|
248
|
+
require 'specinfra/command/freebsd/v7'
|
249
|
+
require 'specinfra/command/freebsd/v7/package'
|
250
|
+
|
251
|
+
# FreeBSD V8 (inherit FreeBSD)
|
252
|
+
require 'specinfra/command/freebsd/v8'
|
253
|
+
require 'specinfra/command/freebsd/v8/package'
|
245
254
|
|
246
255
|
# FreeBSD V9 (inherit FreeBSD)
|
247
256
|
require 'specinfra/command/freebsd/v9'
|
248
257
|
require 'specinfra/command/freebsd/v9/package'
|
249
258
|
|
250
|
-
# FreeBSD V10 (inherit FreeBSD)
|
251
|
-
require 'specinfra/command/freebsd/v10'
|
252
|
-
require 'specinfra/command/freebsd/v10/package'
|
253
|
-
|
254
259
|
# OpenBSD (inherit Base)
|
255
260
|
require 'specinfra/command/openbsd'
|
256
261
|
require 'specinfra/command/openbsd/base'
|
data/lib/specinfra/version.rb
CHANGED
@@ -10,6 +10,21 @@ describe 'command/freebsd/package works correctly' do
|
|
10
10
|
before do
|
11
11
|
set :os, :family => 'freebsd'
|
12
12
|
end
|
13
|
+
describe 'get_command(:check_package_is_installed, "figlet")' do
|
14
|
+
it { expect(get_command(:check_package_is_installed, 'figlet')).to match /^pkg +info +-e +figlet$/ }
|
15
|
+
end
|
16
|
+
describe 'get_command(:check_package_is_installed, "figlet", "1.2.3")' do
|
17
|
+
it { expect(get_command(:check_package_is_installed, 'figlet', '1.2.3')).to match /^pkg +query +%v +figlet *\| *grep -- 1.2.3$/ }
|
18
|
+
end
|
19
|
+
describe 'get_command(:install_package, "figlet")' do
|
20
|
+
it { expect(get_command(:install_package, 'figlet')).to match /^pkg +install +-y +figlet$/ }
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
context 'freebsd-6' do
|
25
|
+
before do
|
26
|
+
set :os, :family => 'freebsd', :release => '6'
|
27
|
+
end
|
13
28
|
describe 'get_command(:check_package_is_installed, "figlet")' do
|
14
29
|
it { expect(get_command(:check_package_is_installed, 'figlet')).to match /^pkg_info +-Ix +figlet$/ }
|
15
30
|
end
|
@@ -21,9 +36,9 @@ describe 'command/freebsd/package works correctly' do
|
|
21
36
|
end
|
22
37
|
end
|
23
38
|
|
24
|
-
context 'freebsd-
|
39
|
+
context 'freebsd-7' do
|
25
40
|
before do
|
26
|
-
set :os, :family => 'freebsd', :release => '
|
41
|
+
set :os, :family => 'freebsd', :release => '7'
|
27
42
|
end
|
28
43
|
describe 'get_command(:check_package_is_installed, "figlet")' do
|
29
44
|
it { expect(get_command(:check_package_is_installed, 'figlet')).to match /^pkg_info +-Ix +figlet$/ }
|
@@ -36,16 +51,49 @@ describe 'command/freebsd/package works correctly' do
|
|
36
51
|
end
|
37
52
|
end
|
38
53
|
|
54
|
+
context 'freebsd-8' do
|
55
|
+
before do
|
56
|
+
set :os, :family => 'freebsd', :release => '8'
|
57
|
+
end
|
58
|
+
let(:cond) do
|
59
|
+
%r{TMPDIR=/dev/null +ASSUME_ALWAYS_YES=1 +PACKAGESITE=file:///nonexist +pkg +info +-x +'pkg\(-devel\)\?\$' *> */dev/null +2>&1}
|
60
|
+
end
|
61
|
+
describe 'get_command(:check_package_is_installed, "figlet")' do
|
62
|
+
st = /pkg +info +-e +figlet/
|
63
|
+
sf = /pkg_info +-Ix +\\\^figlet-\\\[0-9\\\]\\\[0-9a-zA-Z_\.,\\\]\\\*\\\$/
|
64
|
+
it { expect(get_command(:check_package_is_installed, 'figlet')).
|
65
|
+
to match /^if +#{cond} *; *then +#{st} *; *else +#{sf} *; *fi$/ }
|
66
|
+
end
|
67
|
+
describe 'get_command(:check_package_is_installed, "figlet", "1.2.3")' do
|
68
|
+
st = /pkg +query +%v +figlet *\| *grep -- 1.2.3/
|
69
|
+
sf = /pkg_info +-I +figlet-1.2.3/
|
70
|
+
it { expect(get_command(:check_package_is_installed, 'figlet', '1.2.3')).
|
71
|
+
to match /^if +#{cond} *; *then +#{st} *; *else +#{sf} *; *fi$/ }
|
72
|
+
end
|
73
|
+
describe 'get_command(:install_package, "figlet")' do
|
74
|
+
st = /pkg +install +-y +figlet/
|
75
|
+
sf = /pkg_add +-r +install +figlet/
|
76
|
+
it { expect(get_command(:install_package, 'figlet')).
|
77
|
+
to match /^if +#{cond} *; *then +#{st} *; *else +#{sf} *; *fi$/ }
|
78
|
+
end
|
79
|
+
describe 'get_command(:get_package_version, "figlet")' do
|
80
|
+
st = /pkg +query +%v +figlet/
|
81
|
+
sf = /pkg_info +-Ix +\\\^figlet-\\\[0-9\\\]\\\[0-9a-zA-Z_\.,\\\]\\\*\\\$ *\| *cut +-f +1 +-w *\| *sed +-n +'s\/\^figlet-\/\/p'/
|
82
|
+
it { expect(get_command(:get_package_version, 'figlet')).
|
83
|
+
to match /if +#{cond} *; *then +#{st} *; *else +#{sf} *; *fi/ }
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
39
87
|
context 'freebsd-9' do
|
40
88
|
before do
|
41
89
|
set :os, :family => 'freebsd', :release => '9'
|
42
90
|
end
|
43
91
|
let(:cond) do
|
44
|
-
/
|
92
|
+
%r{TMPDIR=/dev/null +ASSUME_ALWAYS_YES=1 +PACKAGESITE=file:///nonexist +pkg +info +-x +'pkg\(-devel\)\?\$' *> */dev/null +2>&1}
|
45
93
|
end
|
46
94
|
describe 'get_command(:check_package_is_installed, "figlet")' do
|
47
95
|
st = /pkg +info +-e +figlet/
|
48
|
-
sf = /pkg_info +-Ix
|
96
|
+
sf = /pkg_info +-Ix +\\\^figlet-\\\[0-9\\\]\\\[0-9a-zA-Z_\.,\\\]\\\*\\\$/
|
49
97
|
it { expect(get_command(:check_package_is_installed, 'figlet')).
|
50
98
|
to match /^if +#{cond} *; *then +#{st} *; *else +#{sf} *; *fi$/ }
|
51
99
|
end
|
@@ -63,7 +111,7 @@ describe 'command/freebsd/package works correctly' do
|
|
63
111
|
end
|
64
112
|
describe 'get_command(:get_package_version, "figlet")' do
|
65
113
|
st = /pkg +query +%v +figlet/
|
66
|
-
sf = /pkg_info +-Ix
|
114
|
+
sf = /pkg_info +-Ix +\\\^figlet-\\\[0-9\\\]\\\[0-9a-zA-Z_\.,\\\]\\\*\\\$ *\| *cut +-f +1 +-w *\| *sed +-n +'s\/\^figlet-\/\/p'/
|
67
115
|
it { expect(get_command(:get_package_version, 'figlet')).
|
68
116
|
to match /if +#{cond} *; *then +#{st} *; *else +#{sf} *; *fi/ }
|
69
117
|
end
|
@@ -83,4 +131,19 @@ describe 'command/freebsd/package works correctly' do
|
|
83
131
|
it { expect(get_command(:install_package, 'figlet')).to match /^pkg +install +-y +figlet$/ }
|
84
132
|
end
|
85
133
|
end
|
134
|
+
|
135
|
+
context 'freebsd-11' do
|
136
|
+
before do
|
137
|
+
set :os, :family => 'freebsd', :release => '11'
|
138
|
+
end
|
139
|
+
describe 'get_command(:check_package_is_installed, "figlet")' do
|
140
|
+
it { expect(get_command(:check_package_is_installed, 'figlet')).to match /^pkg +info +-e +figlet$/ }
|
141
|
+
end
|
142
|
+
describe 'get_command(:check_package_is_installed, "figlet", "1.2.3")' do
|
143
|
+
it { expect(get_command(:check_package_is_installed, 'figlet', '1.2.3')).to match /^pkg +query +%v +figlet *\| *grep -- 1.2.3$/ }
|
144
|
+
end
|
145
|
+
describe 'get_command(:install_package, "figlet")' do
|
146
|
+
it { expect(get_command(:install_package, 'figlet')).to match /^pkg +install +-y +figlet$/ }
|
147
|
+
end
|
148
|
+
end
|
86
149
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: specinfra
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.63.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gosuke Miyashita
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-09-
|
11
|
+
date: 2016-09-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: net-scp
|
@@ -300,10 +300,13 @@ files:
|
|
300
300
|
- lib/specinfra/command/freebsd/base/routing_table.rb
|
301
301
|
- lib/specinfra/command/freebsd/base/service.rb
|
302
302
|
- lib/specinfra/command/freebsd/base/user.rb
|
303
|
-
- lib/specinfra/command/freebsd/v10.rb
|
304
|
-
- lib/specinfra/command/freebsd/v10/package.rb
|
305
303
|
- lib/specinfra/command/freebsd/v6.rb
|
304
|
+
- lib/specinfra/command/freebsd/v6/package.rb
|
306
305
|
- lib/specinfra/command/freebsd/v6/user.rb
|
306
|
+
- lib/specinfra/command/freebsd/v7.rb
|
307
|
+
- lib/specinfra/command/freebsd/v7/package.rb
|
308
|
+
- lib/specinfra/command/freebsd/v8.rb
|
309
|
+
- lib/specinfra/command/freebsd/v8/package.rb
|
307
310
|
- lib/specinfra/command/freebsd/v9.rb
|
308
311
|
- lib/specinfra/command/freebsd/v9/package.rb
|
309
312
|
- lib/specinfra/command/gentoo.rb
|
@@ -1,31 +0,0 @@
|
|
1
|
-
class Specinfra::Command::Freebsd::V10::Package < Specinfra::Command::Freebsd::Base::Package
|
2
|
-
class << self
|
3
|
-
def check_is_installed(package, version=nil)
|
4
|
-
if version
|
5
|
-
"pkg query %v #{escape(package)} | grep -- #{escape(version)}"
|
6
|
-
else
|
7
|
-
"pkg info -e #{escape(package)}"
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
alias :check_is_installed_by_pkg :check_is_installed
|
12
|
-
|
13
|
-
def check_is_installed_by_rpm(package, version=nil)
|
14
|
-
cmd = "rpm -q #{escape(package)}"
|
15
|
-
if version
|
16
|
-
cmd = "#{cmd} | grep -w -- #{escape(package)}-#{escape(version)}"
|
17
|
-
end
|
18
|
-
cmd
|
19
|
-
end
|
20
|
-
|
21
|
-
alias :check_is_installed_by_yum :check_is_installed_by_rpm
|
22
|
-
|
23
|
-
def install(package, version=nil, option='')
|
24
|
-
"pkg install -y #{option} #{package}"
|
25
|
-
end
|
26
|
-
|
27
|
-
def get_version(package, opts=nil)
|
28
|
-
"pkg query %v #{escape(package)}"
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|