specinfra 0.0.9 → 0.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e8061d8285c81986ffe33e15367d495f2ca10ed3
4
- data.tar.gz: 34380bdcdb9baee88f33439bec9bb60c102c66f4
3
+ metadata.gz: ed85bd6489ebcc166afd25dc73387e5cdfc40c7d
4
+ data.tar.gz: b5ce3cbed78d97a0fb100ccee580f13e62041774
5
5
  SHA512:
6
- metadata.gz: f76d19a2bc4550ae8db2b7e744f1d63f72a9b7645cf60f7a734b022280c37358362503dc94b4396f0faaad8c6b8285ea2d2f894d23cff6dade2b49d3d4dea6de
7
- data.tar.gz: 144c166aaca870e04a7166eecdef85d6168a74f2a838ab46485ef3c0bac8d6b22836b2ffbc26b3d36cb0e3131dcd94ee6be9975a3e4c1af28e61d7582342005a
6
+ metadata.gz: 6d41a358c947bd8a3a38441f3f6b5cdbc2a1e596d0ac737b44e74d0937912a721e1e0104d436b1a809dee6300ce623645999d31f20c6b81f5741b5564c41a36f
7
+ data.tar.gz: 064f30d4450802ffe0fa555f74451cb98fd79cd98371d53da784f15c5f956a3acda470e2d32cef6aec6db1fe83db26b437cb2a089563c3a764a8edc4500455a9
@@ -5,9 +5,7 @@ module SpecInfra
5
5
  class ShellScript < Base
6
6
  def initialize
7
7
  @lines = [ "#!/bin/sh", "" ]
8
- ObjectSpace.define_finalizer(self) {
9
- File.write("spec.sh", @lines.join("\n"))
10
- }
8
+ ObjectSpace.define_finalizer(self, Writer.new("spec.sh", @lines))
11
9
  end
12
10
 
13
11
  def run_command(cmd, opts={})
@@ -15,6 +13,17 @@ module SpecInfra
15
13
  { :stdout => nil, :stderr => nil,
16
14
  :exit_status => 0, :exit_signal => nil }
17
15
  end
16
+
17
+ class Writer
18
+ def initialize(file, lines)
19
+ @file = file
20
+ @lines = lines
21
+ end
22
+
23
+ def call(*args)
24
+ File.write(@file, @lines.join("\n"))
25
+ end
26
+ end
18
27
  end
19
28
  end
20
29
  end
@@ -290,7 +290,7 @@ module SpecInfra
290
290
  end
291
291
 
292
292
  def get_file_content(file)
293
- "cat #{file}"
293
+ "cat #{file} 2> /dev/null || echo -n"
294
294
  end
295
295
 
296
296
  def check_container(container)
@@ -14,6 +14,10 @@ module SpecInfra
14
14
  end
15
15
  cmd
16
16
  end
17
+
18
+ def install(package)
19
+ "apt-get -y install #{package}"
20
+ end
17
21
  end
18
22
  end
19
23
  end
@@ -18,6 +18,10 @@ module SpecInfra
18
18
  regexp = "^#{mode}$"
19
19
  "stat -f%Lp #{escape(file)} | grep -- #{escape(regexp)}"
20
20
  end
21
+
22
+ def get_mode(file)
23
+ "stat -f%Lp #{escape(file)}"
24
+ end
21
25
  end
22
26
  end
23
27
  end
@@ -1,13 +1,15 @@
1
1
  module SpecInfra
2
2
  module Helper
3
- ['Exec', 'Ssh', 'Cmd', 'WinRM', 'ShellScript', 'Dockerfile'].each do |backend|
3
+ ['Exec', 'Ssh', 'Cmd', 'WinRM', 'ShellScript', 'Dockerfile'].each do |type|
4
4
  eval <<-EOF
5
- module #{backend}
5
+ module #{type}
6
6
  def backend(commands_object=nil)
7
- if ! respond_to?(:commands)
7
+ called_by_detect_os = caller[0] =~ /detect_os\.rb/
8
+ if ! respond_to?(:commands) || called_by_detect_os
8
9
  commands_object = SpecInfra::Command::Base.new
9
10
  end
10
- instance = SpecInfra::Backend::#{backend}.instance
11
+
12
+ instance = SpecInfra::Backend::#{type}.instance
11
13
  instance.set_commands(commands_object || commands)
12
14
  instance
13
15
  end
@@ -8,7 +8,7 @@ module SpecInfra
8
8
  if property[:os_by_host][host]
9
9
  os = property[:os_by_host][host]
10
10
  else
11
- os = backend(SpecInfra::Command::Base).check_os
11
+ os = backend.check_os
12
12
  property[:os_by_host][host] = os
13
13
  end
14
14
  self.class.const_get('SpecInfra').const_get('Command').const_get(os[:family]).new
@@ -1,3 +1,3 @@
1
1
  module Specinfra
2
- VERSION = "0.0.9"
2
+ VERSION = "0.0.10"
3
3
  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: 0.0.9
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gosuke Miyashita
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-09 00:00:00.000000000 Z
11
+ date: 2013-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler