mux_tf 0.1.2 → 0.2.0
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 +4 -4
- data/README.md +11 -1
- data/lib/mux_tf.rb +2 -0
- data/lib/mux_tf/cli/current.rb +14 -1
- data/lib/mux_tf/version.rb +1 -1
- data/lib/mux_tf/version_check.rb +28 -0
- data/lib/mux_tf/yaml_cache.rb +38 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '081eb21a5fe4e2b6af78aec28e0136cf68ef0301314e4b42c220feee51b12eb0'
|
4
|
+
data.tar.gz: b20cb57dc3c2cff965ba65dea8384ff91181c1716919cbf0330f91906c601fd1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 87ff57efa5e61617cbe4a65c57b09d2c3ee9741ff4ee93955bf015a3e76dc9dcb6cbb8f6d0ef2f419879e727bd3584827e98d88c68bd6af58af3808c8d53bf07
|
7
|
+
data.tar.gz: c8807d29c6839eac9496f4f8b4906e73b6b8f7504d1c888a9a003ff6b60eae3e77e65cf1f3932c62be8034551da3e8544f2ba30de90515e21578dbc87c529054
|
data/README.md
CHANGED
@@ -31,7 +31,17 @@ ROOT/
|
|
31
31
|
|
32
32
|
## Development
|
33
33
|
|
34
|
-
To install this gem onto your local machine, run `bundle exec rake install`.
|
34
|
+
To install this gem onto your local machine, run `bundle exec rake install`.
|
35
|
+
|
36
|
+
## Releasing
|
37
|
+
|
38
|
+
To release a new version, first bump the version number by running:
|
39
|
+
|
40
|
+
```shell
|
41
|
+
gem bump -v major|minor|patch
|
42
|
+
```
|
43
|
+
|
44
|
+
And then run `rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
35
45
|
|
36
46
|
## Contributing
|
37
47
|
|
data/lib/mux_tf.rb
CHANGED
@@ -23,6 +23,8 @@ require_relative './mux_tf/cli'
|
|
23
23
|
require_relative './mux_tf/tmux'
|
24
24
|
require_relative './mux_tf/terraform_helpers'
|
25
25
|
require_relative './mux_tf/plan_formatter'
|
26
|
+
require_relative './mux_tf/version_check'
|
27
|
+
require_relative './mux_tf/yaml_cache'
|
26
28
|
|
27
29
|
module MuxTf
|
28
30
|
end
|
data/lib/mux_tf/cli/current.rb
CHANGED
@@ -12,6 +12,8 @@ module MuxTf
|
|
12
12
|
|
13
13
|
class << self
|
14
14
|
def run(args)
|
15
|
+
version_check
|
16
|
+
|
15
17
|
if args[0] == 'cli'
|
16
18
|
cmd_loop
|
17
19
|
return
|
@@ -57,6 +59,17 @@ module MuxTf
|
|
57
59
|
|
58
60
|
private
|
59
61
|
|
62
|
+
def version_check
|
63
|
+
if VersionCheck.has_updates?
|
64
|
+
log Paint["="*80, :yellow]
|
65
|
+
log "New version of #{Paint["mux_tf", :cyan]} is available!"
|
66
|
+
log "You are currently on version: #{Paint[VersionCheck.current_gem_version, :yellow]}"
|
67
|
+
log "Latest version found is: #{Paint[VersionCheck.latest_gem_version, :green]}"
|
68
|
+
log "Run `#{Paint["gem update muf_tf", :green]}` to update!"
|
69
|
+
log Paint["="*80, :yellow]
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
60
73
|
def run_validate
|
61
74
|
remedies = PlanFormatter.process_validation(validate)
|
62
75
|
process_remedies(remedies)
|
@@ -225,7 +238,7 @@ module MuxTf
|
|
225
238
|
|
226
239
|
def interactive_cmd
|
227
240
|
define_cmd('interactive', summary: 'Apply interactively') do |_opts, _args, _cmd|
|
228
|
-
status = run_shell([
|
241
|
+
status = run_shell([tf_plan_summrary_cmd, PLAN_FILENAME, '-i'], return_status: true)
|
229
242
|
if status != 0
|
230
243
|
log 'Interactive Apply Failed!'
|
231
244
|
else
|
data/lib/mux_tf/version.rb
CHANGED
@@ -0,0 +1,28 @@
|
|
1
|
+
module MuxTf
|
2
|
+
module VersionCheck
|
3
|
+
def has_updates?
|
4
|
+
current_gem_version < latest_gem_version
|
5
|
+
end
|
6
|
+
|
7
|
+
def latest_gem_version
|
8
|
+
value = cache.fetch("latest_gem_version") do
|
9
|
+
fetcher = Gem::SpecFetcher.fetcher
|
10
|
+
dependency = Gem::Dependency.new "mux_tf"
|
11
|
+
remotes, = fetcher.search_for_dependency dependency
|
12
|
+
remotes.map(&:first).map(&:version).sort.last.to_s
|
13
|
+
end
|
14
|
+
|
15
|
+
Gem::Version.new(value)
|
16
|
+
end
|
17
|
+
|
18
|
+
def current_gem_version
|
19
|
+
Gem::Version.new(MuxTf::VERSION)
|
20
|
+
end
|
21
|
+
|
22
|
+
def cache
|
23
|
+
@cache ||= YamlCache.new(File.expand_path("~/.mux_tf.yaml"), default_ttl: 1.hour)
|
24
|
+
end
|
25
|
+
|
26
|
+
extend self
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'yaml/store'
|
2
|
+
|
3
|
+
module MuxTf
|
4
|
+
class YamlCache
|
5
|
+
def initialize(path, default_ttl:)
|
6
|
+
@default_ttl = default_ttl
|
7
|
+
@store = YAML::Store.new path
|
8
|
+
end
|
9
|
+
|
10
|
+
def set(key, value, ttl: @default_ttl)
|
11
|
+
@store.transaction do
|
12
|
+
@store[key] = {
|
13
|
+
expires_at: Time.now + ttl,
|
14
|
+
value: value
|
15
|
+
}
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def fetch(key, ttl: @default_ttl)
|
20
|
+
info = nil
|
21
|
+
@store.transaction(true) do
|
22
|
+
info = @store[key]
|
23
|
+
end
|
24
|
+
|
25
|
+
if info.nil? || info[:expires_at] < Time.now
|
26
|
+
if block_given?
|
27
|
+
value = yield
|
28
|
+
set(key, value, ttl: ttl)
|
29
|
+
return value
|
30
|
+
else
|
31
|
+
raise KeyError, info.nil? ? "no value at key: #{key}" : "value expired at key: #{key}"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
info[:value]
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mux_tf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Piotr Banasik
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-06-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -149,6 +149,8 @@ files:
|
|
149
149
|
- lib/mux_tf/terraform_helpers.rb
|
150
150
|
- lib/mux_tf/tmux.rb
|
151
151
|
- lib/mux_tf/version.rb
|
152
|
+
- lib/mux_tf/version_check.rb
|
153
|
+
- lib/mux_tf/yaml_cache.rb
|
152
154
|
- mux_tf.gemspec
|
153
155
|
homepage: https://github.com/piotrb/mux_tf
|
154
156
|
licenses:
|