pleme 0.0.7 → 0.0.9
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/lib/pleme/cli.rb +3 -0
- data/lib/pleme/gem/version.rb +1 -1
- data/lib/pleme/plemec_translator.rb +25 -0
- data/lib/pleme/runner.rb +44 -3
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cea581615465bd49b4a6ca4cfda20f283ecb6679269b1d33121e515044077d92
|
4
|
+
data.tar.gz: e3d48f7e62a6dd0f1103065013d2ec976c19f054e655535d2a997983fe8c81e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f8084923ed4e6c547e31797ce976e282a3d2272e7bc1653b848827fe53ba71736fdb4bfd2c0fbee287ac9bad4b46f6514787ac1789e412337f464583ce38c3ed
|
7
|
+
data.tar.gz: 8fe631437fe45712a44aa5f02709b2a632e737d12cc19aab57e464ab0ff915f8f1c64118eefbc0ce67f25e280bb95585991911e929700c6cb95891db5a1e5a6d
|
data/lib/pleme/cli.rb
CHANGED
data/lib/pleme/gem/version.rb
CHANGED
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'pleme/abstract_translator'
|
4
|
+
|
5
|
+
class PlemecTranslation < AbstractTranslation
|
6
|
+
end
|
7
|
+
class PlemecTranslator < AbstractTranslator
|
8
|
+
attr_accessor :translation
|
9
|
+
attr_reader :resource_symbols
|
10
|
+
|
11
|
+
def initialize
|
12
|
+
@translation = ResourceTranslation.new
|
13
|
+
@resource_symbols = %i[pleme]
|
14
|
+
end
|
15
|
+
|
16
|
+
def method_missing(method_name, *args, &block)
|
17
|
+
abstract_method_missing(
|
18
|
+
@translation,
|
19
|
+
method_name,
|
20
|
+
@resource_symbols,
|
21
|
+
*args,
|
22
|
+
&block
|
23
|
+
)
|
24
|
+
end
|
25
|
+
end
|
data/lib/pleme/runner.rb
CHANGED
@@ -5,16 +5,57 @@
|
|
5
5
|
# then dispatch accordingly
|
6
6
|
###############################################################################
|
7
7
|
|
8
|
+
require 'pleme/plemec_translator'
|
9
|
+
|
8
10
|
class Runner
|
11
|
+
def initialize
|
12
|
+
@translator = PlemecTranslator.new
|
13
|
+
@spec = nil
|
14
|
+
@config_path = 'plemec.rb'
|
15
|
+
end
|
16
|
+
|
17
|
+
# run a shell command
|
18
|
+
# hard exit if command has a failure
|
19
|
+
# like set -e
|
20
|
+
def sh(cmd)
|
21
|
+
exit 1 unless system(cmd)
|
22
|
+
end
|
23
|
+
|
24
|
+
def run(spec)
|
25
|
+
@spec = spec if @spec.nil?
|
26
|
+
%i[dotfiles apply plan destroy].each do |cli_cmd|
|
27
|
+
send(cli_cmd, spec) unless spec[cli_cmd].nil?
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
9
31
|
def dotfiles(_spec)
|
10
32
|
hax_portal
|
11
33
|
end
|
12
34
|
|
13
|
-
def
|
14
|
-
|
35
|
+
def tf(cmd, cwd = :cache)
|
36
|
+
sh "mkdir -p #{cwd}" unless Dir.exist?(cwd)
|
37
|
+
cmd = "cd #{cwd} && terraform #{cmd}"
|
38
|
+
@translator.eval_in_context(File.read(@config_path))
|
39
|
+
File.write(File.join(cwd, 'template.json'))
|
40
|
+
sh cmd
|
41
|
+
sh "rm -rf #{File.join(cmd, 'template.json')}"
|
42
|
+
end
|
43
|
+
|
44
|
+
def apply
|
45
|
+
tf 'apply'
|
46
|
+
end
|
47
|
+
|
48
|
+
def plan
|
49
|
+
tf 'plan'
|
50
|
+
end
|
51
|
+
|
52
|
+
def destroy
|
53
|
+
tf 'destroy'
|
15
54
|
end
|
16
55
|
|
17
|
-
#
|
56
|
+
# read a local file into this space
|
57
|
+
# so you can test locally while importing
|
58
|
+
# good code to this class
|
18
59
|
def hax_portal
|
19
60
|
instance_eval(File.read('hax.rb')) if File.exist?('hax.rb')
|
20
61
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pleme
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ''
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-09-
|
11
|
+
date: 2020-09-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: docopt
|
@@ -104,6 +104,7 @@ files:
|
|
104
104
|
- lib/pleme/abstract_translator.rb
|
105
105
|
- lib/pleme/cli.rb
|
106
106
|
- lib/pleme/gem/version.rb
|
107
|
+
- lib/pleme/plemec_translator.rb
|
107
108
|
- lib/pleme/resource_translator.rb
|
108
109
|
- lib/pleme/runner.rb
|
109
110
|
- pkg/ltk-gem-0.0.1.gem
|