mux_tf 0.8.1 → 0.8.2

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
  SHA256:
3
- metadata.gz: 5225c16c4d7cdd1f5ab6867f0d17d210116ed52a9ccd381033dd19f8af5f4035
4
- data.tar.gz: e7667d77bb6b830f735bba44977af03b5e9b53e06fddd18750f8aefcf9b9dd62
3
+ metadata.gz: 0fa8aa05ed298ad8e22d12b7fdab99ac1cf4f5a1fe8d947c01bf3a47249b8b77
4
+ data.tar.gz: 9f65f9b7f183c80be4af4fa5e4c84f4396e0aecc9469f5f3dc20a4c2abef35ab
5
5
  SHA512:
6
- metadata.gz: beb488f3bb641ef9244cc16ba28e32ca193195bd5dad22d045d43e5490c3216b34af0f5e5069fa61dd9a1f14d1e32f801a80e50d7d31d91133f2a131becb8a9c
7
- data.tar.gz: da7ac3d1316b2a76ece6d6bcf54e608ce4adde7caab6637732f3459b7fd4830f5f906149d36f9fc8669b986a2a467e342c58ad1a99e9504c8bab7c3ee95be530
6
+ metadata.gz: 7b65a09e45cdf7997a6f8b79f29061f49456f456b8d5063abd4e588230075e66ce945f0fbd3e8e6a0a2dd05a2c6d66c23a74569180bf48380810b474a64ed42b
7
+ data.tar.gz: 17ae22572a91f31b6305f2637639fb21e6fa433fe20aa6bb9c07db7071ffe9ddf83cf3afe6425e98c223b9fd906a9323660febbe9282c0246b0290d3ceea5d96
@@ -0,0 +1,39 @@
1
+ module MuxTf
2
+ class OnceHelper
3
+ # once = OnceHelper.new
4
+ # once.for(:phase).once { ... }.otherwise { ... }
5
+
6
+ class StateEvaluator
7
+ def initialize(once_helper, new_state)
8
+ if once_helper.state != new_state
9
+ once_helper.state = new_state
10
+ @path = :once
11
+ else
12
+ @path = :otherwise
13
+ end
14
+ end
15
+
16
+ def once(&block)
17
+ if @path == :then
18
+ yield
19
+ end
20
+ end
21
+
22
+ def otherwise(&block)
23
+ if @path == :otherwise
24
+ yield
25
+ end
26
+ end
27
+ end
28
+
29
+ def initialize
30
+ @state = nil
31
+ end
32
+
33
+ attr_accessor :state
34
+
35
+ def for(new_state)
36
+ StateEvaluator.new(self, new_state)
37
+ end
38
+ end
39
+ end
@@ -9,7 +9,7 @@ module MuxTf
9
9
  def pretty_plan(filename, targets: [])
10
10
  pastel = Pastel.new
11
11
 
12
- phase = :init
12
+ once = OnceHelper.new
13
13
 
14
14
  meta = {}
15
15
 
@@ -17,6 +17,7 @@ module MuxTf
17
17
  parser.state(:info, /^Acquiring state lock/)
18
18
  parser.state(:error, /(╷|Error locking state|Error:)/, %i[none blank info reading])
19
19
  parser.state(:reading, /: (Reading...|Read complete after)/, %i[none info reading])
20
+ parser.state(:none, /^$/, [:reading])
20
21
  parser.state(:refreshing, /^.+: Refreshing state... \[id=/, %i[none info reading])
21
22
  parser.state(:refreshing, /Refreshing Terraform state in-memory prior to plan.../, %i[none blank info reading])
22
23
  parser.state(:refresh_done, /^----------+$/, [:refreshing])
@@ -24,6 +25,9 @@ module MuxTf
24
25
  parser.state(:plan_info, /Terraform will perform the following actions:/, [:refresh_done, :none])
25
26
  parser.state(:plan_summary, /^Plan:/, [:plan_info])
26
27
 
28
+ parser.state(:plan_legend, /^Terraform used the selected providers to generate the following execution$/)
29
+ parser.state(:none, /^$/, [:plan_legend])
30
+
27
31
  parser.state(:error_lock_info, /Lock Info/, [:error])
28
32
  parser.state(:error, /^$/, [:error_lock_info])
29
33
 
@@ -61,10 +65,7 @@ module MuxTf
61
65
  meta["error"] = "lock"
62
66
  log Paint[line, :red], depth: 2
63
67
  when :plan_error
64
- if phase != :plan_error
65
- puts
66
- phase = :plan_error
67
- end
68
+ once.for(state).once { puts }
68
69
  meta["error"] = "refresh"
69
70
  log Paint[line, :red], depth: 2
70
71
  when :error_lock_info
@@ -73,20 +74,22 @@ module MuxTf
73
74
  end
74
75
  log Paint[line, :red], depth: 2
75
76
  when :refreshing
76
- if phase != :refreshing
77
- phase = :refreshing
77
+ once.for(state).once {
78
78
  log "Refreshing state ", depth: 2, newline: false
79
- else
79
+ }.otherwise {
80
80
  print "."
81
- end
81
+ }
82
+ when :plan_legend
83
+ once.for(state).once { puts }
84
+ log line, depth: 2
82
85
  when :refresh_done
83
- if phase != :refresh_done
84
- phase = :refresh_done
86
+ once.for(state).once {
85
87
  puts
86
- else
87
- # nothing
88
- end
88
+ }.otherwise {
89
+ #nothing
90
+ }
89
91
  when :plan_info
92
+ once.for(state).once { puts }
90
93
  log line, depth: 2
91
94
  when :plan_summary
92
95
  log line, depth: 2
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MuxTf
4
- VERSION = "0.8.1"
4
+ VERSION = "0.8.2"
5
5
  end
data/lib/mux_tf.rb CHANGED
@@ -20,6 +20,7 @@ require "tty-table"
20
20
  require "dotenv"
21
21
 
22
22
  require_relative "./mux_tf/version"
23
+ require_relative "./mux_tf/once_helper"
23
24
  require_relative "./mux_tf/resource_tokenizer"
24
25
  require_relative "./mux_tf/cli"
25
26
  require_relative "./mux_tf/tmux"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mux_tf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piotr Banasik
@@ -141,6 +141,7 @@ files:
141
141
  - lib/mux_tf/cli/current.rb
142
142
  - lib/mux_tf/cli/mux.rb
143
143
  - lib/mux_tf/cli/plan_summary.rb
144
+ - lib/mux_tf/once_helper.rb
144
145
  - lib/mux_tf/plan_formatter.rb
145
146
  - lib/mux_tf/plan_summary_handler.rb
146
147
  - lib/mux_tf/resource_tokenizer.rb