roro 0.3.6 → 0.3.13

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.
Files changed (72) hide show
  1. checksums.yaml +5 -5
  2. data/{lib/roro/cli/templates/dockerize/.env → .circleci}/.keep +0 -0
  3. data/.circleci/config.yml +55 -0
  4. data/{lib/roro/cli/templates/ruby_gem → .circleci}/setup-gem-credentials.sh +1 -1
  5. data/.gitignore +13 -3
  6. data/Guardfile +2 -12
  7. data/docker-compose.yml +15 -0
  8. data/lib/roro.rb +0 -1
  9. data/lib/roro/cli.rb +70 -4
  10. data/lib/roro/cli/cli.rb +99 -0
  11. data/lib/roro/cli/configuration.rb +1 -0
  12. data/lib/roro/cli/expose.rb +8 -7
  13. data/lib/roro/cli/generate/config.rb +5 -5
  14. data/lib/roro/cli/generate/generate_keys.rb +47 -79
  15. data/lib/roro/cli/greenfield.rb +11 -21
  16. data/lib/roro/cli/obfuscate.rb +10 -11
  17. data/lib/roro/cli/rollon.rb +2 -2
  18. data/lib/roro/cli/rollon/stories.rb +2 -3
  19. data/lib/roro/cli/{templates/dockerize/.env/development/.keep → rollon/stories/database.rb} +0 -0
  20. data/lib/roro/cli/rollon/stories/rails.rb +1 -0
  21. data/lib/roro/cli/{templates/dockerize → rollon/stories/rails}/.keep +0 -0
  22. data/lib/roro/cli/rollon/{database → stories/rails}/database.rb +2 -0
  23. data/lib/roro/cli/rollon/{database → stories/rails/database}/with_mysql.rb +0 -0
  24. data/lib/roro/cli/rollon/{database/with_postgres.rb → stories/rails/database/with_postgresql.rb} +0 -0
  25. data/lib/roro/cli/rollon/stories/ruby_gem.rb +77 -0
  26. data/lib/roro/cli/rollon/stories/ruby_gem/with_ci_cd.rb +45 -0
  27. data/lib/roro/cli/rollon/stories/stories.rb +3 -0
  28. data/lib/roro/cli/ruby_gem.rb +60 -47
  29. data/lib/roro/cli/templates/base/.dockerignore +2 -2
  30. data/lib/roro/cli/templates/base/.env/database.mysql.env.tt +0 -1
  31. data/lib/roro/cli/templates/base/.env/database.pg.env.tt +0 -1
  32. data/lib/roro/cli/templates/base/.env/web.env.tt +1 -0
  33. data/lib/roro/cli/templates/base/Dockerfile.tt +53 -15
  34. data/lib/roro/cli/templates/greenfield/Dockerfile.tt +1 -1
  35. data/lib/roro/cli/templates/ruby_gem/{docker/env_files → .circleci}/.keep +0 -0
  36. data/lib/roro/cli/templates/ruby_gem/.circleci/config.yml.tt +40 -0
  37. data/lib/roro/cli/templates/ruby_gem/.circleci/setup-gem-credentials.sh +3 -0
  38. data/lib/roro/cli/templates/ruby_gem/docker-compose.yml +10 -4
  39. data/lib/roro/cli/templates/ruby_gem/{docker/keys → roro/containers}/.keep +0 -0
  40. data/lib/roro/cli/templates/ruby_gem/roro/containers/ruby_image/Dockerfile.tt +16 -0
  41. data/lib/roro/cli/templates/ruby_gem/roro/containers/ruby_image/ci.env.tt +1 -0
  42. data/lib/roro/cli/templates/ruby_gem/roro/keys/.keep +0 -0
  43. data/lib/roro/cli/templates/stories/rails/database/with_mysql/_service.yml +10 -0
  44. data/lib/roro/cli/templates/stories/rails/database/with_postgresql/.keep +0 -0
  45. data/lib/roro/cli/templates/stories/rails/database/with_postgresql/_service.yml +7 -0
  46. data/lib/roro/cli/templates/stories/ruby_gem/with_ci_cd/_build.yml +11 -0
  47. data/lib/roro/version.rb +1 -1
  48. data/roro.gemspec +3 -3
  49. data/roro/containers/.keep +0 -0
  50. data/roro/containers/ruby_image/Dockerfile +16 -0
  51. data/roro/containers/ruby_image/ci.env.enc +2 -0
  52. data/roro/keys/.keep +0 -0
  53. data/sandbox/.keep +0 -0
  54. data/tmp/.keep +0 -0
  55. data/vendor/cache/concurrent-ruby-1.1.7.gem +0 -0
  56. data/vendor/cache/gem-release-2.1.1.gem +0 -0
  57. metadata +59 -35
  58. data/lib/roro/cli/generate_keys.rb +0 -79
  59. data/lib/roro/cli/templates/circleci/config.yml.tt +0 -70
  60. data/lib/roro/cli/templates/dockerize/.env/development/database +0 -3
  61. data/lib/roro/cli/templates/dockerize/.env/development/web +0 -1
  62. data/lib/roro/cli/templates/dockerize/Dockerfile.tt +0 -23
  63. data/lib/roro/cli/templates/dockerize/docker-compose.yml.tt +0 -60
  64. data/lib/roro/cli/templates/dockerize/docker-entrypoint.sh +0 -9
  65. data/lib/roro/cli/templates/quickstart/Dockerfile.tt +0 -20
  66. data/lib/roro/cli/templates/quickstart/database.yml +0 -85
  67. data/lib/roro/cli/templates/quickstart/docker-compose.yml +0 -17
  68. data/lib/roro/cli/templates/quickstart/entrypoint.sh +0 -8
  69. data/lib/roro/cli/templates/ruby_gem/.gitignore +0 -8
  70. data/lib/roro/cli/templates/ruby_gem/config.yml +0 -122
  71. data/lib/roro/cli/templates/ruby_gem/docker/containers/app/Dockerfile.tt +0 -10
  72. data/vendor/cache/concurrent-ruby-1.1.6.gem +0 -0
@@ -24,11 +24,11 @@ VOLUME /gems
24
24
  RUN echo "source 'https://rubygems.org'\ngem 'rails'" > Gemfile
25
25
 
26
26
  ## Bundle to install rails:
27
- RUN bundle install
28
27
 
29
28
  ## Switch to the the work directory from container root:
30
29
  WORKDIR ${APP_HOME}
31
30
 
31
+ RUN bundle install
32
32
  ## Use Rails to generate a new app. We'll configure it later.
33
33
  RUN bundle exec rails new . --skip-webpack-install --skip-bundle
34
34
 
@@ -0,0 +1,40 @@
1
+ version: 2.1
2
+
3
+ jobs:
4
+
5
+ build:
6
+ machine: true
7
+ steps:
8
+ - checkout
9
+
10
+ test:
11
+ machine: true
12
+ steps:
13
+ - placeholder
14
+
15
+ release:
16
+ machine: true
17
+ steps:
18
+ - checkout
19
+ - run: gem install roro
20
+ - run: roro generate::exposed ci
21
+ - run: echo 'source roro/containers/ruby_image/ci.env' >> $BASH_ENV
22
+ - run: chmod +x ./.circleci/setup-gem-credentials.sh
23
+ - run: ./.circleci/setup-gem-credentials.sh
24
+ - run: cat ~/.gem/credentials
25
+ - run: git checkout .
26
+ - run: gem release
27
+
28
+ workflows:
29
+ version: 2
30
+
31
+ build-release:
32
+ jobs:
33
+ - build
34
+ - test
35
+ - release:
36
+ requires:
37
+ - build
38
+ filters:
39
+ branches:
40
+ only: release
@@ -0,0 +1,3 @@
1
+ mkdir ~/.gem
2
+ echo -e "---\r\n:rubygems_api_key: $RUBYGEMS_API_KEY" > ~/.gem/credentials
3
+ chmod 0600 /home/circleci/.gem/credentials
@@ -1,9 +1,15 @@
1
- version: '3.1'
1
+ version: '3.2'
2
2
 
3
3
  services:
4
4
 
5
- app:
5
+ ruby_gem:
6
6
  build:
7
7
  context: .
8
- dockerfile: docker/containers/app/Dockerfile
9
- command: rake test
8
+ dockerfile: roro/containers/ruby_image/Dockerfile
9
+ environment:
10
+ - RUBY_VERSION=${RUBY_VERSION}
11
+ volumes:
12
+ - gem_cache:/gems
13
+
14
+ volumes:
15
+ gem_cache:
@@ -0,0 +1,16 @@
1
+ ARG RUBY_VERSION=<%= config['ruby_version'] %>
2
+ ARG RUBY_IMAGE=ruby:${RUBY_VERSION}-alpine
3
+ FROM $RUBY_IMAGE
4
+
5
+ RUN apk add --no-cache --update build-base linux-headers git
6
+
7
+ ENV APP_HOME /usr/src/app/
8
+ ENV BUNDLE_PATH /gems
9
+ ENV GEM_PATH ${BUNDLE_PATH}
10
+ ENV GEM_HOME ${BUNDLE_PATH}
11
+
12
+ RUN mkdir ${BUNDLE_PATH}
13
+
14
+ WORKDIR ${APP_HOME}
15
+ COPY . ${APP_HOME}
16
+ RUN bundle install
@@ -0,0 +1 @@
1
+ export RUBYGEMS_API_KEY=<%= config['rubygems_api_key'] %>
@@ -0,0 +1,10 @@
1
+ database:
2
+ image: mysql:5.7
3
+ env_file:
4
+ - roro/containers/database/development.env
5
+ - roro/containers/app/development.env
6
+ volumes:
7
+ - db_data:/var/lib/mysql
8
+ restart: always
9
+ ports:
10
+ - '3307:3306'
@@ -0,0 +1,7 @@
1
+ database:
2
+ image: postgres
3
+ env_file:
4
+ - roro/containers/database/development.env
5
+ - roro/containers/app/development.env
6
+ volumes:
7
+ - db_data:/var/lib/postgresql/data
@@ -0,0 +1,11 @@
1
+ build:
2
+ machine: true
3
+ steps:
4
+ - checkout
5
+
6
+ <%= 'getsome' %>
7
+ - run: gem install roro
8
+ - run: roro generate::exposed ci
9
+ - run: echo 'source roro/containers/ruby_image/ci.env' >> $BASH_ENV
10
+ - run: gem install gem-release
11
+ # - run: gem release --key $RUBYGEMS_API_KEY
@@ -1,3 +1,3 @@
1
1
  module Roro
2
- VERSION = "0.3.6"
2
+ VERSION = "0.3.13"
3
3
  end
@@ -37,11 +37,11 @@ Gem::Specification.new do |spec|
37
37
  # spec.bindir = "exe"
38
38
  # spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
39
39
  spec.require_paths = ["lib"]
40
-
41
- spec.add_dependency "thor"
40
+ spec.add_dependency "gem-release", "~> 2.1"
41
+ spec.add_dependency "thor", "~> 1.0"
42
42
  spec.add_dependency "os", "1.0.0"
43
43
  spec.add_dependency "sshkit", "1.18.2"
44
- spec.add_dependency "handsome_fencer-crypto", "0.1.6"
44
+ spec.add_dependency "handsome_fencer-crypto"
45
45
  spec.add_development_dependency "bundler"
46
46
  spec.add_development_dependency "rake", ">= 12.3"
47
47
  spec.add_development_dependency "handsome_fencer-test", "0.1.1"
File without changes
@@ -0,0 +1,16 @@
1
+ ARG RUBY_VERSION=2.7
2
+ ARG RUBY_IMAGE=ruby:${RUBY_VERSION}-alpine
3
+ FROM $RUBY_IMAGE
4
+
5
+ RUN apk add --no-cache --update build-base linux-headers git
6
+
7
+ ENV APP_HOME /usr/src/app/
8
+ ENV BUNDLE_PATH /gems
9
+ ENV GEM_PATH ${BUNDLE_PATH}
10
+ ENV GEM_HOME ${BUNDLE_PATH}
11
+
12
+ RUN mkdir ${BUNDLE_PATH}
13
+
14
+ WORKDIR ${APP_HOME}
15
+ COPY . ${APP_HOME}
16
+ RUN bundle install
@@ -0,0 +1,2 @@
1
+ CP3WnhLldqGcoPdCRgAkzUiXdTYdd166oDCRsXDbJi+YWczgX53oaJsRNlu8
2
+ S/cvOkds770ID3hmbcNXwfyR4A==
File without changes
File without changes
File without changes
metadata CHANGED
@@ -1,29 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: roro
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.6
4
+ version: 0.3.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - schadenfred
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-18 00:00:00.000000000 Z
11
+ date: 2020-08-23 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: gem-release
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.1'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: thor
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
- - - ">="
31
+ - - "~>"
18
32
  - !ruby/object:Gem::Version
19
- version: '0'
33
+ version: '1.0'
20
34
  type: :runtime
21
35
  prerelease: false
22
36
  version_requirements: !ruby/object:Gem::Requirement
23
37
  requirements:
24
- - - ">="
38
+ - - "~>"
25
39
  - !ruby/object:Gem::Version
26
- version: '0'
40
+ version: '1.0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: os
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -56,16 +70,16 @@ dependencies:
56
70
  name: handsome_fencer-crypto
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
- - - '='
73
+ - - ">="
60
74
  - !ruby/object:Gem::Version
61
- version: 0.1.6
75
+ version: '0'
62
76
  type: :runtime
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
- - - '='
80
+ - - ">="
67
81
  - !ruby/object:Gem::Version
68
- version: 0.1.6
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: bundler
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -146,6 +160,9 @@ executables:
146
160
  extensions: []
147
161
  extra_rdoc_files: []
148
162
  files:
163
+ - ".circleci/.keep"
164
+ - ".circleci/config.yml"
165
+ - ".circleci/setup-gem-credentials.sh"
149
166
  - ".gitignore"
150
167
  - ".ruby-gemset"
151
168
  - ".travis.yml"
@@ -158,6 +175,7 @@ files:
158
175
  - bin/console
159
176
  - bin/roro
160
177
  - bin/setup
178
+ - docker-compose.yml
161
179
  - lib/roro.rb
162
180
  - lib/roro/cli.rb
163
181
  - lib/roro/cli/base/base.rb
@@ -167,20 +185,26 @@ files:
167
185
  - lib/roro/cli/base/insert_gems.rb
168
186
  - lib/roro/cli/base/insertions.rb
169
187
  - lib/roro/cli/base/utilities.rb
188
+ - lib/roro/cli/cli.rb
170
189
  - lib/roro/cli/configuration.rb
171
190
  - lib/roro/cli/expose.rb
172
191
  - lib/roro/cli/generate/config.rb
173
192
  - lib/roro/cli/generate/config/rails.rb
174
193
  - lib/roro/cli/generate/generate.rb
175
194
  - lib/roro/cli/generate/generate_keys.rb
176
- - lib/roro/cli/generate_keys.rb
177
195
  - lib/roro/cli/greenfield.rb
178
196
  - lib/roro/cli/obfuscate.rb
179
197
  - lib/roro/cli/rollon.rb
180
- - lib/roro/cli/rollon/database/database.rb
181
- - lib/roro/cli/rollon/database/with_mysql.rb
182
- - lib/roro/cli/rollon/database/with_postgres.rb
183
198
  - lib/roro/cli/rollon/stories.rb
199
+ - lib/roro/cli/rollon/stories/database.rb
200
+ - lib/roro/cli/rollon/stories/rails.rb
201
+ - lib/roro/cli/rollon/stories/rails/.keep
202
+ - lib/roro/cli/rollon/stories/rails/database.rb
203
+ - lib/roro/cli/rollon/stories/rails/database/with_mysql.rb
204
+ - lib/roro/cli/rollon/stories/rails/database/with_postgresql.rb
205
+ - lib/roro/cli/rollon/stories/ruby_gem.rb
206
+ - lib/roro/cli/rollon/stories/ruby_gem/with_ci_cd.rb
207
+ - lib/roro/cli/rollon/stories/stories.rb
184
208
  - lib/roro/cli/roro_configurator.yml
185
209
  - lib/roro/cli/ruby_gem.rb
186
210
  - lib/roro/cli/templates/base/.dockerignore
@@ -193,15 +217,6 @@ files:
193
217
  - lib/roro/cli/templates/base/Dockerfile.tt
194
218
  - lib/roro/cli/templates/base/config/database.mysql.yml
195
219
  - lib/roro/cli/templates/base/config/database.pg.yml
196
- - lib/roro/cli/templates/circleci/config.yml.tt
197
- - lib/roro/cli/templates/dockerize/.env/.keep
198
- - lib/roro/cli/templates/dockerize/.env/development/.keep
199
- - lib/roro/cli/templates/dockerize/.env/development/database
200
- - lib/roro/cli/templates/dockerize/.env/development/web
201
- - lib/roro/cli/templates/dockerize/.keep
202
- - lib/roro/cli/templates/dockerize/Dockerfile.tt
203
- - lib/roro/cli/templates/dockerize/docker-compose.yml.tt
204
- - lib/roro/cli/templates/dockerize/docker-entrypoint.sh
205
220
  - lib/roro/cli/templates/greenfield/Dockerfile.tt
206
221
  - lib/roro/cli/templates/jumpstart/.env/.keep
207
222
  - lib/roro/cli/templates/jumpstart/.env/development/.keep
@@ -212,10 +227,6 @@ files:
212
227
  - lib/roro/cli/templates/jumpstart/docker-compose.yml
213
228
  - lib/roro/cli/templates/jumpstart/docker-entrypoint.sh
214
229
  - lib/roro/cli/templates/livereload/hosts.example
215
- - lib/roro/cli/templates/quickstart/Dockerfile.tt
216
- - lib/roro/cli/templates/quickstart/database.yml
217
- - lib/roro/cli/templates/quickstart/docker-compose.yml
218
- - lib/roro/cli/templates/quickstart/entrypoint.sh
219
230
  - lib/roro/cli/templates/roro/.keep
220
231
  - lib/roro/cli/templates/roro/docker-compose.yml.tt
221
232
  - lib/roro/cli/templates/roro/roro/.keep
@@ -223,20 +234,31 @@ files:
223
234
  - lib/roro/cli/templates/roro/roro/containers/app/.keep
224
235
  - lib/roro/cli/templates/roro/roro/containers/frontend/.keep
225
236
  - lib/roro/cli/templates/roro/roro/docker-entrypoint.sh.tt
226
- - lib/roro/cli/templates/ruby_gem/.gitignore
227
- - lib/roro/cli/templates/ruby_gem/config.yml
237
+ - lib/roro/cli/templates/ruby_gem/.circleci/.keep
238
+ - lib/roro/cli/templates/ruby_gem/.circleci/config.yml.tt
239
+ - lib/roro/cli/templates/ruby_gem/.circleci/setup-gem-credentials.sh
228
240
  - lib/roro/cli/templates/ruby_gem/docker-compose.yml
229
- - lib/roro/cli/templates/ruby_gem/docker/containers/app/Dockerfile.tt
230
- - lib/roro/cli/templates/ruby_gem/docker/env_files/.keep
231
- - lib/roro/cli/templates/ruby_gem/docker/keys/.keep
232
- - lib/roro/cli/templates/ruby_gem/setup-gem-credentials.sh
241
+ - lib/roro/cli/templates/ruby_gem/roro/containers/.keep
242
+ - lib/roro/cli/templates/ruby_gem/roro/containers/ruby_image/Dockerfile.tt
243
+ - lib/roro/cli/templates/ruby_gem/roro/containers/ruby_image/ci.env.tt
244
+ - lib/roro/cli/templates/ruby_gem/roro/keys/.keep
233
245
  - lib/roro/cli/templates/stories/.keep
246
+ - lib/roro/cli/templates/stories/rails/database/with_mysql/_service.yml
247
+ - lib/roro/cli/templates/stories/rails/database/with_postgresql/.keep
248
+ - lib/roro/cli/templates/stories/rails/database/with_postgresql/_service.yml
249
+ - lib/roro/cli/templates/stories/ruby_gem/with_ci_cd/_build.yml
234
250
  - lib/roro/cli/templates/stories/with_mysql/_service.yml
235
251
  - lib/roro/cli/templates/stories/with_postgresql/.keep
236
252
  - lib/roro/cli/templates/stories/with_postgresql/_service.yml
237
253
  - lib/roro/version.rb
238
254
  - lib/tasks/deploy.rake
239
255
  - roro.gemspec
256
+ - roro/containers/.keep
257
+ - roro/containers/ruby_image/Dockerfile
258
+ - roro/containers/ruby_image/ci.env.enc
259
+ - roro/keys/.keep
260
+ - sandbox/.keep
261
+ - tmp/.keep
240
262
  - vendor/bundle/.keep
241
263
  - vendor/cache/actionpack-6.0.3.2.gem
242
264
  - vendor/cache/actionview-6.0.3.2.gem
@@ -245,13 +267,14 @@ files:
245
267
  - vendor/cache/builder-3.2.4.gem
246
268
  - vendor/cache/byebug-11.1.3.gem
247
269
  - vendor/cache/coderay-1.1.3.gem
248
- - vendor/cache/concurrent-ruby-1.1.6.gem
270
+ - vendor/cache/concurrent-ruby-1.1.7.gem
249
271
  - vendor/cache/crass-1.0.6.gem
250
272
  - vendor/cache/em-websocket-0.5.1.gem
251
273
  - vendor/cache/erubi-1.9.0.gem
252
274
  - vendor/cache/eventmachine-1.2.7.gem
253
275
  - vendor/cache/ffi-1.13.1.gem
254
276
  - vendor/cache/formatador-0.2.5.gem
277
+ - vendor/cache/gem-release-2.1.1.gem
255
278
  - vendor/cache/given_core-3.8.0.gem
256
279
  - vendor/cache/guard-2.16.2.gem
257
280
  - vendor/cache/guard-compat-1.2.1.gem
@@ -321,7 +344,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
321
344
  - !ruby/object:Gem::Version
322
345
  version: '0'
323
346
  requirements: []
324
- rubygems_version: 3.1.4
347
+ rubyforge_project:
348
+ rubygems_version: 2.6.13
325
349
  signing_key:
326
350
  specification_version: 4
327
351
  summary: Containerization framwork for Ruby on Rails applications.
@@ -1,79 +0,0 @@
1
- require 'openssl'
2
- require 'base64'
3
- require 'handsome_fencer/crypto'
4
-
5
- module Roro
6
-
7
- class CLI < Thor
8
-
9
- include Thor::Actions
10
- include HandsomeFencer::Crypto
11
-
12
- desc "generate_keys", "Generates keys for all environments. If you have .env files like './**/production.env' and './**/staging.env' this command assumes you need keys for the production and staging environments, and will generate them for you."
13
-
14
- def generate_keys
15
- generate_key
16
- end
17
-
18
- desc "generate_key", "Generate a key for each environment"
19
- method_option :environment, type: :hash, default: {}, desc: "Pass a list of environment variables like so: env:var", banner: "development, staging"
20
-
21
- def generate_key(*args)
22
- environments = args.first ? [args.first] : gather_environments
23
- environments.each do |environment|
24
- confirm_files_decrypted?(environment)
25
- create_file "docker/keys/#{environment}.key", encoded_key
26
- end
27
- end
28
-
29
- no_commands do
30
-
31
- def encoded_key
32
- @cipher = OpenSSL::Cipher.new 'AES-128-CBC'
33
- @salt = '8 octets'
34
- @new_key = @cipher.random_key
35
- Base64.encode64(@new_key)
36
- end
37
-
38
- def gather_environments
39
- environments = []
40
- ['.env', '.env.enc'].each do |extension|
41
-
42
- HandsomeFencer::Crypto.source_files('.', extension).each do |env_file|
43
- environments << env_file.split('/').last.split(extension).last
44
- end
45
- end
46
- environments.uniq
47
- end
48
-
49
- def confirm_files_decrypted?(environment)
50
- orphan_encrypted = []
51
- HandsomeFencer::Crypto.source_files('.', '.env.enc').each do |file|
52
- orphan_encrypted << file unless File.exist? file.split('.enc').first
53
- end
54
-
55
- if !orphan_encrypted.empty?
56
- raise Roro::Error.new("You have an encrypted files (.env.enc) #{orphan_encrypted} that do not have corresponding decrypted files (.env). Please decrypt or remove these encrypted files before generating a new key for #{environment}.")
57
- end
58
- true
59
- end
60
- end
61
- end
62
-
63
- # desc "generate keys", "Generate keys on a per-environment basis"
64
- #
65
- # method_option :environment, type: :string, default: {}, desc: "Pass a list of environment variables like so: env:var", banner: "development, staging"
66
- #
67
-
68
- # def generate_keys
69
- # default_environments = %w[circleci development production]
70
- # environments = args.first ? [args.first] : default_environments
71
- # environments.each do |environment|
72
- # @cipher = OpenSSL::Cipher.new 'AES-128-CBC'
73
- # @salt = '8 octets'
74
- # @new_key = @cipher.random_key
75
- #
76
- # create_file "docker/keys/#{environment}.key", Base64.encode64(@new_key)
77
- # end
78
- # end
79
- end