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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c5472c282a2a8354bc9712568465b8eb24636e0eb854a50504c4e659151322f8
4
- data.tar.gz: 21f3ec5d0bbf681977b0370e6ef96bb9aa54c6751ecc021aa3c323e56cc6ad36
3
+ metadata.gz: cea581615465bd49b4a6ca4cfda20f283ecb6679269b1d33121e515044077d92
4
+ data.tar.gz: e3d48f7e62a6dd0f1103065013d2ec976c19f054e655535d2a997983fe8c81e5
5
5
  SHA512:
6
- metadata.gz: b6d2b88052004a2df5c87bba8129367084ea8caad78885044dd8b5bce7b203489a2402cf6e9a28910c4aa423c0dc8c4ada20a590c3b2834c66a1ebeebfdeb24a
7
- data.tar.gz: 0512a7bc7d98c53facc09923df8a9b5ab14e28fb1db9f48a57d04a6add3bc92cca9f68c4bc6a104d95eec0af80c54718749a18eeb3f2be44e6f10aafc8355628
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: make bundle directory
19
- run: mkdir -p ~/.bundle
20
-
21
- - name: install_bundler
22
- run: gem install bundler
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
@@ -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
@@ -1 +1 @@
1
- 2.6.4
1
+ 2.6.3
@@ -1,7 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- pleme (0.0.1)
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
@@ -18,4 +18,7 @@ task :test do
18
18
  .invoke
19
19
  end
20
20
  end
21
- task default: :test
21
+ task :default do
22
+ Rake::Task['test'].invoke
23
+ Rake::Task['release'].invoke
24
+ end
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require 'pleme/cli'
5
+
6
+ Cli.new.run
@@ -19,6 +19,7 @@ class AbstractTranslation
19
19
  :context,
20
20
  :data,
21
21
  :ancestors
22
+
22
23
  def initialize
23
24
  add_bury_to_hash
24
25
 
@@ -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
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Pleme
4
4
  module Gem
5
- VERSION = '0.0.2'
5
+ VERSION = '0.0.9'
6
6
  end
7
7
  end
@@ -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
@@ -7,6 +7,7 @@ end
7
7
  class ResourceTranslator < AbstractTranslator
8
8
  attr_accessor :translation
9
9
  attr_reader :resource_symbols
10
+
10
11
  def initialize
11
12
  @translation = ResourceTranslation.new
12
13
  @resource_symbols = %i[resource]
@@ -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
@@ -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.4'
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.2
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-09 00:00:00.000000000 Z
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
- - dependencies.sh
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.4
126
+ version: 2.6.3
109
127
  required_rubygems_version: !ruby/object:Gem::Requirement
110
128
  requirements:
111
129
  - - ">="
@@ -1,4 +0,0 @@
1
- #!/bin/sh
2
-
3
- bundle config set rubygems.pkg.github.com luisfelipemourapereira:$GITHUB_TOKEN
4
- bundle