specinfra 0.0.9 → 0.0.10

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: 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