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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ed49d01b31c18e7f80b214bbcbe121db6a415f9d
4
- data.tar.gz: ac889adaf47b4dc2cbe6a08fb03386d76dd34ab7
3
+ metadata.gz: 9f008a62e9df588d9f48580058a5fff5fadbe5c8
4
+ data.tar.gz: 4aee183c7c190d945245b85c5c76cc98dcf4b7e4
5
5
  SHA512:
6
- metadata.gz: faf5959daccb4b5c64428fbc7e2010f5478fe42faf8e07ff3cc8c8fe808c6fe03587cec74696b9cc6a3c08ceabcfa1491feee5c997beac5a10609cb0df758f3a
7
- data.tar.gz: 05e1af735ea64b0c6c789502a8563b49a84f8525b4e960271ac368806b99042cc1632f32f76c168880c7985276c4082d5d43d14c03cc58a1196718e2805248bd
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
- "pkg_info -I #{escape(package)}-#{escape(version)}"
5
+ "pkg query %v #{escape(package)} | grep -- #{escape(version)}"
6
6
  else
7
- "pkg_info -Ix #{escape(package)}"
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
- "pkg_add -r #{option} install #{package}"
24
+ "pkg install -y #{option} #{package}"
13
25
  end
14
26
 
15
27
  def get_version(package, opts=nil)
16
- "pkg_info -Ix #{escape(package)} | cut -f 1 -w | sed -n 's/^#{escape(package)}-//p'"
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,2 @@
1
+ class Specinfra::Command::Freebsd::V7::Package < Specinfra::Command::Freebsd::V6::Package
2
+ end
@@ -0,0 +1,2 @@
1
+ class Specinfra::Command::Freebsd::V7 < Specinfra::Command::Freebsd::Base
2
+ 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
@@ -0,0 +1,2 @@
1
+ class Specinfra::Command::Freebsd::V8 < Specinfra::Command::Freebsd::Base
2
+ end
@@ -1,48 +1,2 @@
1
- class Specinfra::Command::Freebsd::V9::Package < Specinfra::Command::Freebsd::Base::Package
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
@@ -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'
@@ -1,3 +1,3 @@
1
1
  module Specinfra
2
- VERSION = "2.62.0"
2
+ VERSION = "2.63.0"
3
3
  end
@@ -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-8' do
39
+ context 'freebsd-7' do
25
40
  before do
26
- set :os, :family => 'freebsd', :release => '8'
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
- /test +`sysctl +-n +kern.osreldate` +-ge +902000 *&& *pkg +-N *> *\/dev\/null +2>&1/
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 +figlet/
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 +figlet *\| *cut +-f +1 +-w *\| *sed +-n +'s\/\^figlet-\/\/p'/
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.62.0
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-14 00:00:00.000000000 Z
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
@@ -1,2 +0,0 @@
1
- class Specinfra::Command::Freebsd::V10 < Specinfra::Command::Freebsd::Base
2
- end