pleme 0.0.3 → 0.0.10

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: c46216be9589f9031645a10ca830a59639985d6e8d417939efe47bb6a4d63445
4
- data.tar.gz: 66644531a50cb45e9f82ad620d149875a562c2f3afe95d8027a7e63b05cab368
3
+ metadata.gz: 12b543618ac3bd363d1e2ff383a64b89856c1a38f8bb6559644a86cd0c519694
4
+ data.tar.gz: a30f4a2496f3f1e0b2a39282b1f473e2be2fac7a3d1b863a68c553dd27ec142d
5
5
  SHA512:
6
- metadata.gz: 7391d3ca14c3b169e0f15e51ed9d052a9a6d6116231226264b54133d0c8508c88ac646b979b3a8d9e1385e8cc1503e93499a4fff251a7e120f2d45e51bbe4d65
7
- data.tar.gz: f5f1c90c6a78068fc963a3c5b32af6b78f6c0532481271dda394d4850c6e6ea0c51cf8610479cf2c6e8d80799ea576e4e129ba9906f0f50f478c717a8abe82b0
6
+ metadata.gz: '082d2a8ce15be9007014e408038c649c8756a6b12307824532d5fc2e9835fa74506da016d3f8c3f749932fbf096cbb4fcac10868278fc706eb2fdef5d72863bd'
7
+ data.tar.gz: 4b0e401e218bad05606320d9e98313c698e21266de745653b883bd53b9fefe159f8264753cc1b5510c96af1f233fc3365f219a801dcd2e195cc40a47e2247b7b
@@ -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 +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
@@ -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.3'
5
+ VERSION = '0.0.10'
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
@@ -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
@@ -20,6 +20,7 @@ Gem::Specification.new do |spec|
20
20
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
21
21
  spec.require_paths = ['lib']
22
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.3
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - ''
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-18 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
@@ -1,4 +0,0 @@
1
- #!/bin/sh
2
-
3
- bundle config set rubygems.pkg.github.com luisfelipemourapereira:$GITHUB_TOKEN
4
- bundle