itamae 1.0.0.beta34 → 1.0.0.beta35

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: 35649d044a624b2d15b00968214ab5a9bbdec57d
4
- data.tar.gz: 5f221d3341a367ba33934195034f2b146f04d992
3
+ metadata.gz: 604c4ca5d5f163d3da6cb818dee4c5978ce5c3e8
4
+ data.tar.gz: a819f6d02d1229fc3cf7c072d080843daaabe348
5
5
  SHA512:
6
- metadata.gz: a19fe887f749d27ca6f9b9c4eef51a974711f8a79257d2ec6cb8e41e177bd8ed37144a42ba652845a88465d7740a1e8d5641d1e508fcff09a13251152c5282be
7
- data.tar.gz: e9fb236ceda5b1901c940053369a75cd37da70e1030a546e2f6a18d92ec49f72eadac7223d9b4221e990657f7f7e200768353a633c63ca9407f2e957db577e29
6
+ metadata.gz: 6d0c852666278903d4303dab36296cb04247a02aa400f550c842010280ee97fde27d84d0c1b1413e83b16617215728f25fa411a10c8aff2b815611ac3bfcabb7
7
+ data.tar.gz: 25b9655e55512fce6d744787d2fd23bc4df68dc40fe5aad22523d4e3347a5a6d9e052900a171b3745c9080694c35ed3def32efec0f8d1a5c0ee897b91b368f6e
data/lib/itamae/cli.rb CHANGED
@@ -33,6 +33,7 @@ module Itamae
33
33
  option :key, type: :string, aliases: ['-i']
34
34
  option :port, type: :numeric, aliases: ['-p']
35
35
  option :ohai, type: :boolean, default: false
36
+ option :vagrant, type: :boolean, default: false
36
37
  def ssh(*recipe_files)
37
38
  if recipe_files.empty?
38
39
  raise "Please specify recipe files."
data/lib/itamae/logger.rb CHANGED
@@ -62,13 +62,24 @@ module Itamae
62
62
 
63
63
  class << self
64
64
  def logger
65
- @logger ||= ::Logger.new($stdout).tap do |logger|
66
- logger.formatter = Formatter.new
67
- end
65
+ @logger ||= create_logger
68
66
  end
69
67
 
70
- def logger=(l)
71
- @logger = l
68
+ def log_device
69
+ @log_device || $stdout
70
+ end
71
+
72
+ def log_device=(value)
73
+ @log_device = value
74
+ @logger = create_logger
75
+ end
76
+
77
+ private
78
+
79
+ def create_logger
80
+ ::Logger.new(log_device).tap do |logger|
81
+ logger.formatter = Formatter.new
82
+ end
72
83
  end
73
84
 
74
85
  def method_missing(method, *args, &block)
@@ -12,17 +12,21 @@ module Itamae
12
12
  define_attribute :group, type: String
13
13
 
14
14
  def pre_action
15
- src = if content_file
16
- content_file
17
- else
18
- Tempfile.open('itamae') do |f|
15
+ begin
16
+ src = if content_file
17
+ content_file
18
+ else
19
+ f = Tempfile.open('itamae')
19
20
  f.write(content)
21
+ f.close
20
22
  f.path
21
23
  end
22
- end
23
24
 
24
- @temppath = ::File.join(runner.tmpdir, Time.now.to_f.to_s)
25
- send_file(src, @temppath)
25
+ @temppath = ::File.join(runner.tmpdir, Time.now.to_f.to_s)
26
+ send_file(src, @temppath)
27
+ ensure
28
+ f.unlink if f
29
+ end
26
30
 
27
31
  case @current_action
28
32
  when :create
data/lib/itamae/runner.rb CHANGED
@@ -49,6 +49,13 @@ module Itamae
49
49
  opts[:user] = options[:user] || Etc.getlogin
50
50
  opts[:keys] = [options[:key]] if options[:key]
51
51
  opts[:port] = options[:port] if options[:port]
52
+
53
+ if options[:vagrant]
54
+ config = Tempfile.new('', Dir.tmpdir)
55
+ `vagrant ssh-config #{opts[:host]} > #{config.path}`
56
+ opts.merge!(Net::SSH::Config.for(opts[:host], [config.path]))
57
+ opts[:host] = opts.delete(:host_name)
58
+ end
52
59
  end
53
60
 
54
61
  Backend.instance.set_type(type, opts)
@@ -1 +1 @@
1
- 1.0.0.beta34
1
+ 1.0.0.beta35
@@ -5,7 +5,7 @@ module Itamae
5
5
  let(:io) { StringIO.new }
6
6
 
7
7
  before do
8
- Logger.logger = ::Logger.new(io)
8
+ Logger.log_device = io
9
9
  end
10
10
 
11
11
  [:fatal, :error, :warn, :info, :debug].each do |level|
@@ -18,5 +18,5 @@ RSpec.configure do |config|
18
18
  config.order = 'random'
19
19
  end
20
20
 
21
- Itamae::Logger.logger = ::Logger.new(StringIO.new)
21
+ Itamae::Logger.log_device = StringIO.new
22
22
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: itamae
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.beta34
4
+ version: 1.0.0.beta35
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryota Arai