pleme 0.0.2 → 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/.github/workflows/publish.yml +6 -31
- data/.rubocop.yml +9 -0
- data/.ruby-version +1 -1
- data/Gemfile.lock +3 -1
- data/Rakefile +4 -1
- data/bin/pleme +6 -0
- data/lib/pleme/abstract_translator.rb +1 -0
- data/lib/pleme/cli.rb +30 -0
- data/lib/pleme/gem/version.rb +1 -1
- data/lib/pleme/plemec_translator.rb +25 -0
- data/lib/pleme/resource_translator.rb +1 -0
- data/lib/pleme/runner.rb +62 -0
- data/pleme.gemspec +2 -1
- metadata +23 -5
- data/dependencies.sh +0 -4
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
|
@@ -15,34 +15,9 @@ jobs:
|
|
15
15
|
with:
|
16
16
|
ruby_version: '2.6'
|
17
17
|
|
18
|
-
- name:
|
19
|
-
run:
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
- name: install_bundle
|
25
|
-
run: gem install bundle
|
26
|
-
|
27
|
-
- name: install_dependencies
|
28
|
-
run: ./dependencies.sh
|
29
|
-
env:
|
30
|
-
GITHUB_TOKEN: ${{ secrets.LTK_GITHUB_TOKEN }}
|
31
|
-
|
32
|
-
- name: rake_test
|
33
|
-
run: rake test
|
34
|
-
|
35
|
-
- name: rake_build
|
36
|
-
run: rake build
|
37
|
-
|
38
|
-
- name: make gem directory
|
39
|
-
run: 'mkdir -p ~/.gem'
|
40
|
-
|
41
|
-
- name: credentials
|
42
|
-
run: 'echo ":github: Bearer ${{ secrets.LTK_GITHUB_TOKEN }}" >> ~/.gem/credentials'
|
43
|
-
|
44
|
-
- name: correct_permissions
|
45
|
-
run: 'chmod 600 ~/.gem/credentials'
|
46
|
-
|
47
|
-
- name: push package
|
48
|
-
run: gem push --key github --host https://rubygems.pkg.github.com/luisfelipemourapereira pkg/ltk-gem-*.gem
|
18
|
+
- name: release
|
19
|
+
run: |
|
20
|
+
set -e
|
21
|
+
gem install bundler
|
22
|
+
bundle
|
23
|
+
rake test
|
data/.rubocop.yml
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
AllCops:
|
2
|
+
NewCops: enable
|
3
|
+
|
1
4
|
Style/Documentation:
|
2
5
|
Enabled: false
|
3
6
|
|
@@ -51,3 +54,9 @@ Metrics/AbcSize:
|
|
51
54
|
|
52
55
|
Metrics/PerceivedComplexity:
|
53
56
|
Enabled: false
|
57
|
+
|
58
|
+
Style/SoleNestedConditional:
|
59
|
+
Enabled: false
|
60
|
+
|
61
|
+
Lint/MissingSuper:
|
62
|
+
Enabled: false
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.6.
|
1
|
+
2.6.3
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
pleme (0.0.
|
4
|
+
pleme (0.0.3)
|
5
|
+
docopt
|
5
6
|
|
6
7
|
GEM
|
7
8
|
remote: https://rubygems.org/
|
@@ -10,6 +11,7 @@ GEM
|
|
10
11
|
backport (1.1.2)
|
11
12
|
benchmark (0.1.0)
|
12
13
|
diff-lcs (1.4.4)
|
14
|
+
docopt (0.6.1)
|
13
15
|
e2mmap (0.1.0)
|
14
16
|
jaro_winkler (1.5.4)
|
15
17
|
maruku (0.7.3)
|
data/Rakefile
CHANGED
data/bin/pleme
ADDED
data/lib/pleme/cli.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
###############################################################################
|
4
|
+
# cli
|
5
|
+
###############################################################################
|
6
|
+
|
7
|
+
require 'docopt'
|
8
|
+
require 'json'
|
9
|
+
require 'pleme/runner'
|
10
|
+
|
11
|
+
class Cli
|
12
|
+
def initialize
|
13
|
+
@doc = <<~DOCOPT
|
14
|
+
pleme.
|
15
|
+
|
16
|
+
Usage:
|
17
|
+
pleme
|
18
|
+
pleme dotfiles
|
19
|
+
pleme plan
|
20
|
+
pleme apply
|
21
|
+
pleme destroy
|
22
|
+
DOCOPT
|
23
|
+
end
|
24
|
+
|
25
|
+
def run
|
26
|
+
Runner.new.run(**JSON.parse(JSON[Docopt.docopt(@doc)], symbolize_names: true))
|
27
|
+
rescue Docopt::Exit => e
|
28
|
+
puts e.message
|
29
|
+
end
|
30
|
+
end
|
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
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
###############################################################################
|
4
|
+
# define a run interface that takes a dict
|
5
|
+
# then dispatch accordingly
|
6
|
+
###############################################################################
|
7
|
+
|
8
|
+
require 'pleme/plemec_translator'
|
9
|
+
|
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
|
+
|
31
|
+
def dotfiles(_spec)
|
32
|
+
hax_portal
|
33
|
+
end
|
34
|
+
|
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'
|
54
|
+
end
|
55
|
+
|
56
|
+
# read a local file into this space
|
57
|
+
# so you can test locally while importing
|
58
|
+
# good code to this class
|
59
|
+
def hax_portal
|
60
|
+
instance_eval(File.read('hax.rb')) if File.exist?('hax.rb')
|
61
|
+
end
|
62
|
+
end
|
data/pleme.gemspec
CHANGED
@@ -19,7 +19,8 @@ Gem::Specification.new do |spec|
|
|
19
19
|
end
|
20
20
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
21
21
|
spec.require_paths = ['lib']
|
22
|
-
spec.required_ruby_version = '>= 2.6.
|
22
|
+
spec.required_ruby_version = '>= 2.6.3'
|
23
|
+
spec.add_dependency('docopt')
|
23
24
|
spec.add_development_dependency('rake')
|
24
25
|
spec.add_development_dependency('rspec')
|
25
26
|
spec.add_development_dependency('rubocop')
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
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
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: docopt
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: rake
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -69,7 +83,8 @@ dependencies:
|
|
69
83
|
description: Pleme
|
70
84
|
email:
|
71
85
|
- " luis AT pleme DOT com"
|
72
|
-
executables:
|
86
|
+
executables:
|
87
|
+
- pleme
|
73
88
|
extensions: []
|
74
89
|
extra_rdoc_files: []
|
75
90
|
files:
|
@@ -83,12 +98,15 @@ files:
|
|
83
98
|
- Gemfile.lock
|
84
99
|
- README.md
|
85
100
|
- Rakefile
|
86
|
-
-
|
101
|
+
- bin/pleme
|
87
102
|
- init.sh
|
88
103
|
- lib/pleme.rb
|
89
104
|
- lib/pleme/abstract_translator.rb
|
105
|
+
- lib/pleme/cli.rb
|
90
106
|
- lib/pleme/gem/version.rb
|
107
|
+
- lib/pleme/plemec_translator.rb
|
91
108
|
- lib/pleme/resource_translator.rb
|
109
|
+
- lib/pleme/runner.rb
|
92
110
|
- pkg/ltk-gem-0.0.1.gem
|
93
111
|
- pleme.gemspec
|
94
112
|
- scripts/init.sh
|
@@ -105,7 +123,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
105
123
|
requirements:
|
106
124
|
- - ">="
|
107
125
|
- !ruby/object:Gem::Version
|
108
|
-
version: 2.6.
|
126
|
+
version: 2.6.3
|
109
127
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
110
128
|
requirements:
|
111
129
|
- - ">="
|
data/dependencies.sh
DELETED