roro 0.3.0 → 0.3.6
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/.gitignore +5 -8
- data/Guardfile +11 -4
- data/lib/roro.rb +1 -1
- data/lib/roro/cli.rb +6 -4
- data/lib/roro/cli/base/base.rb +8 -0
- data/lib/roro/cli/base/base_files.rb +24 -0
- data/lib/roro/cli/base/check_dependencies.rb +98 -0
- data/lib/roro/cli/base/continuous_integration.rb +13 -0
- data/lib/roro/cli/base/insert_gems.rb +31 -0
- data/lib/roro/cli/base/insertions.rb +19 -0
- data/lib/roro/cli/base/utilities.rb +39 -0
- data/lib/roro/cli/configuration.rb +68 -0
- data/lib/roro/cli/generate/config.rb +13 -0
- data/lib/roro/cli/generate/config/rails.rb +17 -0
- data/lib/roro/cli/generate/generate.rb +1 -0
- data/lib/roro/cli/generate/generate_keys.rb +79 -0
- data/lib/roro/cli/generate_keys.rb +1 -1
- data/lib/roro/cli/greenfield.rb +20 -75
- data/lib/roro/cli/rollon.rb +74 -11
- data/lib/roro/cli/rollon/database/database.rb +31 -0
- data/lib/roro/cli/rollon/database/with_mysql.rb +22 -0
- data/lib/roro/cli/rollon/database/with_postgres.rb +21 -0
- data/lib/roro/cli/rollon/stories.rb +3 -0
- data/lib/roro/cli/roro_configurator.yml +157 -0
- data/lib/roro/cli/ruby_gem.rb +6 -0
- data/lib/roro/cli/templates/base/.dockerignore +51 -0
- data/{docker/env_files → lib/roro/cli/templates/base/.env}/.keep +0 -0
- data/lib/roro/cli/templates/base/.env/database.mysql.env.tt +4 -0
- data/lib/roro/cli/templates/base/.env/database.pg.env.tt +5 -0
- data/{test_apps/dummy_roro/docker/containers/app/staging.env → lib/roro/cli/templates/base/.env/web.env.tt} +0 -1
- data/{docker/keys → lib/roro/cli/templates/base}/.keep +0 -0
- data/lib/roro/cli/templates/base/.roro_config.yml +15 -0
- data/lib/roro/cli/templates/base/Dockerfile.tt +44 -0
- data/lib/roro/cli/templates/base/config/database.mysql.yml +19 -0
- data/lib/roro/cli/templates/{config/database.yml → base/config/database.pg.yml} +0 -0
- data/{test_apps/dummy_roro/.circleci/config.yml → lib/roro/cli/templates/circleci/config.yml.tt} +7 -6
- data/lib/roro/cli/templates/{docker/containers/database → dockerize/.env}/.keep +0 -0
- data/lib/roro/cli/templates/{docker/env_files → dockerize/.env/development}/.keep +0 -0
- data/lib/roro/cli/templates/dockerize/.env/development/database +3 -0
- data/lib/roro/cli/templates/dockerize/.env/development/web +1 -0
- data/lib/roro/cli/templates/{docker/keys → dockerize}/.keep +0 -0
- data/lib/roro/cli/templates/dockerize/Dockerfile.tt +23 -0
- data/lib/roro/cli/templates/dockerize/docker-compose.yml.tt +60 -0
- data/lib/roro/cli/templates/dockerize/docker-entrypoint.sh +9 -0
- data/lib/roro/cli/templates/greenfield/Dockerfile.tt +43 -0
- data/{test_apps/dummy/app/assets/images → lib/roro/cli/templates/jumpstart/.env}/.keep +0 -0
- data/{test_apps/dummy/app/assets/javascripts/channels → lib/roro/cli/templates/jumpstart/.env/development}/.keep +0 -0
- data/lib/roro/cli/templates/jumpstart/.env/development/database +3 -0
- data/lib/roro/cli/templates/jumpstart/.env/development/web +1 -0
- data/{test_apps/dummy/app/controllers/concerns → lib/roro/cli/templates/jumpstart}/.keep +0 -0
- data/lib/roro/cli/templates/jumpstart/Dockerfile.tt +30 -0
- data/lib/roro/cli/templates/jumpstart/docker-compose.yml +59 -0
- data/lib/roro/cli/templates/jumpstart/docker-entrypoint.sh +16 -0
- data/lib/roro/cli/templates/livereload/hosts.example +7 -0
- data/lib/roro/cli/templates/quickstart/Dockerfile.tt +20 -0
- data/{test_apps/dummy/config → lib/roro/cli/templates/quickstart}/database.yml +12 -12
- data/lib/roro/cli/templates/{greenfield → quickstart}/docker-compose.yml +4 -2
- data/lib/roro/cli/templates/quickstart/entrypoint.sh +8 -0
- data/{test_apps/dummy/app/models/concerns → lib/roro/cli/templates/roro}/.keep +0 -0
- data/lib/roro/cli/templates/roro/docker-compose.yml.tt +60 -0
- data/{test_apps/dummy/lib/assets → lib/roro/cli/templates/roro/roro}/.keep +0 -0
- data/{test_apps/dummy/lib/tasks → lib/roro/cli/templates/roro/roro/containers}/.keep +0 -0
- data/{test_apps/dummy/log → lib/roro/cli/templates/roro/roro/containers/app}/.keep +0 -0
- data/{test_apps/dummy/storage → lib/roro/cli/templates/roro/roro/containers/frontend}/.keep +0 -0
- data/lib/roro/cli/templates/roro/roro/docker-entrypoint.sh.tt +8 -0
- data/lib/roro/cli/templates/ruby_gem/.gitignore +8 -0
- data/{test_apps/dummy/test/controllers → lib/roro/cli/templates/stories}/.keep +0 -0
- data/lib/roro/cli/templates/stories/with_mysql/_service.yml +10 -0
- data/{test_apps/dummy/test/fixtures → lib/roro/cli/templates/stories/with_postgresql}/.keep +0 -0
- data/lib/roro/cli/templates/stories/with_postgresql/_service.yml +7 -0
- data/lib/roro/version.rb +1 -1
- data/roro.gemspec +6 -3
- data/vendor/cache/actionpack-6.0.3.2.gem +0 -0
- data/vendor/cache/actionview-6.0.3.2.gem +0 -0
- data/vendor/cache/activesupport-6.0.3.2.gem +0 -0
- data/vendor/cache/addressable-2.7.0.gem +0 -0
- data/vendor/cache/builder-3.2.4.gem +0 -0
- data/vendor/cache/byebug-11.1.3.gem +0 -0
- data/vendor/cache/coderay-1.1.3.gem +0 -0
- data/vendor/cache/concurrent-ruby-1.1.6.gem +0 -0
- data/vendor/cache/crass-1.0.6.gem +0 -0
- data/vendor/cache/erubi-1.9.0.gem +0 -0
- data/vendor/cache/ffi-1.13.1.gem +0 -0
- data/vendor/cache/guard-2.16.2.gem +0 -0
- data/vendor/cache/i18n-1.8.5.gem +0 -0
- data/vendor/cache/launchy-2.5.0.gem +0 -0
- data/vendor/cache/listen-3.2.1.gem +0 -0
- data/vendor/cache/loofah-2.6.0.gem +0 -0
- data/vendor/cache/lumberjack-1.2.7.gem +0 -0
- data/vendor/cache/method_source-1.0.0.gem +0 -0
- data/vendor/cache/minitest-5.14.1.gem +0 -0
- data/vendor/cache/minitest-rails-6.0.1.gem +0 -0
- data/vendor/cache/mocha-1.11.2.gem +0 -0
- data/vendor/cache/multi_json-1.15.0.gem +0 -0
- data/vendor/cache/net-scp-3.0.0.gem +0 -0
- data/vendor/cache/net-ssh-6.1.0.gem +0 -0
- data/vendor/cache/{nokogiri-1.9.1.gem → nokogiri-1.10.10.gem} +0 -0
- data/vendor/cache/notiffany-0.1.3.gem +0 -0
- data/vendor/cache/pry-0.13.1.gem +0 -0
- data/vendor/cache/public_suffix-4.0.5.gem +0 -0
- data/vendor/cache/rack-2.2.3.gem +0 -0
- data/vendor/cache/rails-html-sanitizer-1.3.0.gem +0 -0
- data/vendor/cache/railties-6.0.3.2.gem +0 -0
- data/vendor/cache/rake-13.0.1.gem +0 -0
- data/vendor/cache/rb-fsevent-0.10.4.gem +0 -0
- data/vendor/cache/rb-inotify-0.10.1.gem +0 -0
- data/vendor/cache/shoulda-4.0.0.gem +0 -0
- data/vendor/cache/shoulda-context-2.0.0.gem +0 -0
- data/vendor/cache/shoulda-matchers-4.3.0.gem +0 -0
- data/vendor/cache/sorcerer-2.0.1.gem +0 -0
- data/vendor/cache/thor-1.0.1.gem +0 -0
- data/vendor/cache/tzinfo-1.2.7.gem +0 -0
- data/vendor/cache/zeitwerk-2.4.0.gem +0 -0
- metadata +142 -276
- data/.circleci/config.yml +0 -177
- data/.circleci/setup-gem-credentials.sh +0 -3
- data/.ruby-version +0 -1
- data/Gemfile.lock +0 -165
- data/_config.yml +0 -1
- data/docker-compose.yml +0 -21
- data/docker/containers/2_5_3/Dockerfile +0 -10
- data/docker/containers/2_6_0/Dockerfile +0 -10
- data/docker/containers/app/Dockerfile +0 -10
- data/docker/env_files/circleci.env.enc +0 -5
- data/lib/roro/cli/base.rb +0 -137
- data/lib/roro/cli/templates/Gemfile.lock +0 -0
- data/lib/roro/cli/templates/Guardfile +0 -81
- data/lib/roro/cli/templates/circleci/Rakefile +0 -4
- data/lib/roro/cli/templates/circleci/config.job-example.yml +0 -33
- data/lib/roro/cli/templates/circleci/config.yml +0 -69
- data/lib/roro/cli/templates/circleci/config.yml.workflow-example +0 -62
- data/lib/roro/cli/templates/circleci/deploy.rake +0 -127
- data/lib/roro/cli/templates/config.yml +0 -71
- data/lib/roro/cli/templates/docker-compose.yml +0 -53
- data/lib/roro/cli/templates/docker/containers/app/Dockerfile.tt +0 -12
- data/lib/roro/cli/templates/docker/containers/web/Dockerfile.tt +0 -18
- data/lib/roro/cli/templates/docker/containers/web/app.conf.tt +0 -23
- data/lib/roro/cli/templates/docker/overrides/circleci.yml.tt +0 -19
- data/lib/roro/cli/templates/docker/overrides/production.yml.tt +0 -26
- data/lib/roro/cli/templates/docker/web/Dockerfile +0 -20
- data/lib/roro/cli/templates/docker/web/app.conf +0 -23
- data/lib/roro/cli/templates/gitignore +0 -27
- data/lib/roro/cli/templates/greenfield/Dockerfile +0 -8
- data/lib/roro/cli/templates/greenfield/Gemfile +0 -2
- data/lib/roro/cli/templates/greenfield/Gemfile.lock +0 -0
- data/lib/roro/cli/templates/greenfield/config/database.yml.example +0 -16
- data/lib/roro/cli/templates/lib/tasks/deploy.rake +0 -126
- data/test_apps/dummy/.gitignore +0 -27
- data/test_apps/dummy/Gemfile +0 -61
- data/test_apps/dummy/README.md +0 -24
- data/test_apps/dummy/Rakefile +0 -6
- data/test_apps/dummy/app/assets/config/manifest.js +0 -3
- data/test_apps/dummy/app/assets/javascripts/application.js +0 -16
- data/test_apps/dummy/app/assets/javascripts/cable.js +0 -13
- data/test_apps/dummy/app/assets/stylesheets/application.css +0 -15
- data/test_apps/dummy/app/channels/application_cable/channel.rb +0 -4
- data/test_apps/dummy/app/channels/application_cable/connection.rb +0 -4
- data/test_apps/dummy/app/controllers/application_controller.rb +0 -2
- data/test_apps/dummy/app/helpers/application_helper.rb +0 -2
- data/test_apps/dummy/app/jobs/application_job.rb +0 -2
- data/test_apps/dummy/app/mailers/application_mailer.rb +0 -4
- data/test_apps/dummy/app/models/application_record.rb +0 -3
- data/test_apps/dummy/app/views/layouts/application.html.erb +0 -15
- data/test_apps/dummy/app/views/layouts/mailer.html.erb +0 -13
- data/test_apps/dummy/app/views/layouts/mailer.text.erb +0 -1
- data/test_apps/dummy/bin/bundle +0 -3
- data/test_apps/dummy/bin/rails +0 -4
- data/test_apps/dummy/bin/rake +0 -4
- data/test_apps/dummy/bin/setup +0 -36
- data/test_apps/dummy/bin/update +0 -31
- data/test_apps/dummy/bin/yarn +0 -11
- data/test_apps/dummy/config.ru +0 -5
- data/test_apps/dummy/config/application.rb +0 -19
- data/test_apps/dummy/config/boot.rb +0 -4
- data/test_apps/dummy/config/cable.yml +0 -10
- data/test_apps/dummy/config/credentials.yml.enc +0 -1
- data/test_apps/dummy/config/environment.rb +0 -5
- data/test_apps/dummy/config/environments/development.rb +0 -61
- data/test_apps/dummy/config/environments/production.rb +0 -94
- data/test_apps/dummy/config/environments/test.rb +0 -46
- data/test_apps/dummy/config/initializers/application_controller_renderer.rb +0 -8
- data/test_apps/dummy/config/initializers/assets.rb +0 -14
- data/test_apps/dummy/config/initializers/backtrace_silencers.rb +0 -7
- data/test_apps/dummy/config/initializers/content_security_policy.rb +0 -25
- data/test_apps/dummy/config/initializers/cookies_serializer.rb +0 -5
- data/test_apps/dummy/config/initializers/filter_parameter_logging.rb +0 -4
- data/test_apps/dummy/config/initializers/inflections.rb +0 -16
- data/test_apps/dummy/config/initializers/mime_types.rb +0 -4
- data/test_apps/dummy/config/initializers/wrap_parameters.rb +0 -14
- data/test_apps/dummy/config/locales/en.yml +0 -33
- data/test_apps/dummy/config/puma.rb +0 -34
- data/test_apps/dummy/config/routes.rb +0 -3
- data/test_apps/dummy/config/spring.rb +0 -6
- data/test_apps/dummy/config/storage.yml +0 -34
- data/test_apps/dummy/db/seeds.rb +0 -7
- data/test_apps/dummy/package.json +0 -5
- data/test_apps/dummy/public/404.html +0 -67
- data/test_apps/dummy/public/422.html +0 -67
- data/test_apps/dummy/public/500.html +0 -66
- data/test_apps/dummy/public/apple-touch-icon-precomposed.png +0 -0
- data/test_apps/dummy/public/apple-touch-icon.png +0 -0
- data/test_apps/dummy/public/favicon.ico +0 -0
- data/test_apps/dummy/public/robots.txt +0 -1
- data/test_apps/dummy/test/application_system_test_case.rb +0 -5
- data/test_apps/dummy/test/fixtures/files/.keep +0 -0
- data/test_apps/dummy/test/helpers/.keep +0 -0
- data/test_apps/dummy/test/integration/.keep +0 -0
- data/test_apps/dummy/test/mailers/.keep +0 -0
- data/test_apps/dummy/test/models/.keep +0 -0
- data/test_apps/dummy/test/system/.keep +0 -0
- data/test_apps/dummy/test/test_helper.rb +0 -10
- data/test_apps/dummy/tmp/.keep +0 -0
- data/test_apps/dummy/vendor/.keep +0 -0
- data/test_apps/dummy_gem/.keep +0 -0
- data/test_apps/dummy_roro/.circleci/Rakefile +0 -4
- data/test_apps/dummy_roro/.circleci/config.job-example.yml +0 -33
- data/test_apps/dummy_roro/.circleci/config.yml.workflow-example +0 -62
- data/test_apps/dummy_roro/.circleci/deploy.rake +0 -127
- data/test_apps/dummy_roro/.gitignore +0 -27
- data/test_apps/dummy_roro/Gemfile +0 -64
- data/test_apps/dummy_roro/README.md +0 -24
- data/test_apps/dummy_roro/Rakefile +0 -6
- data/test_apps/dummy_roro/app/assets/config/manifest.js +0 -3
- data/test_apps/dummy_roro/app/assets/images/.keep +0 -0
- data/test_apps/dummy_roro/app/assets/javascripts/application.js +0 -16
- data/test_apps/dummy_roro/app/assets/javascripts/cable.js +0 -13
- data/test_apps/dummy_roro/app/assets/javascripts/channels/.keep +0 -0
- data/test_apps/dummy_roro/app/assets/stylesheets/application.css +0 -15
- data/test_apps/dummy_roro/app/channels/application_cable/channel.rb +0 -4
- data/test_apps/dummy_roro/app/channels/application_cable/connection.rb +0 -4
- data/test_apps/dummy_roro/app/controllers/application_controller.rb +0 -2
- data/test_apps/dummy_roro/app/controllers/concerns/.keep +0 -0
- data/test_apps/dummy_roro/app/helpers/application_helper.rb +0 -2
- data/test_apps/dummy_roro/app/jobs/application_job.rb +0 -2
- data/test_apps/dummy_roro/app/mailers/application_mailer.rb +0 -4
- data/test_apps/dummy_roro/app/models/application_record.rb +0 -3
- data/test_apps/dummy_roro/app/models/concerns/.keep +0 -0
- data/test_apps/dummy_roro/app/views/layouts/application.html.erb +0 -15
- data/test_apps/dummy_roro/app/views/layouts/mailer.html.erb +0 -13
- data/test_apps/dummy_roro/app/views/layouts/mailer.text.erb +0 -1
- data/test_apps/dummy_roro/bin/bundle +0 -3
- data/test_apps/dummy_roro/bin/rails +0 -4
- data/test_apps/dummy_roro/bin/rake +0 -4
- data/test_apps/dummy_roro/bin/setup +0 -36
- data/test_apps/dummy_roro/bin/update +0 -31
- data/test_apps/dummy_roro/bin/yarn +0 -11
- data/test_apps/dummy_roro/config.ru +0 -5
- data/test_apps/dummy_roro/config/application.rb +0 -19
- data/test_apps/dummy_roro/config/boot.rb +0 -4
- data/test_apps/dummy_roro/config/cable.yml +0 -10
- data/test_apps/dummy_roro/config/credentials.yml.enc +0 -1
- data/test_apps/dummy_roro/config/database.yml +0 -20
- data/test_apps/dummy_roro/config/environment.rb +0 -5
- data/test_apps/dummy_roro/config/environments/development.rb +0 -61
- data/test_apps/dummy_roro/config/environments/production.rb +0 -94
- data/test_apps/dummy_roro/config/environments/test.rb +0 -46
- data/test_apps/dummy_roro/config/initializers/application_controller_renderer.rb +0 -8
- data/test_apps/dummy_roro/config/initializers/assets.rb +0 -14
- data/test_apps/dummy_roro/config/initializers/backtrace_silencers.rb +0 -7
- data/test_apps/dummy_roro/config/initializers/content_security_policy.rb +0 -25
- data/test_apps/dummy_roro/config/initializers/cookies_serializer.rb +0 -5
- data/test_apps/dummy_roro/config/initializers/filter_parameter_logging.rb +0 -4
- data/test_apps/dummy_roro/config/initializers/inflections.rb +0 -16
- data/test_apps/dummy_roro/config/initializers/mime_types.rb +0 -4
- data/test_apps/dummy_roro/config/initializers/wrap_parameters.rb +0 -14
- data/test_apps/dummy_roro/config/locales/en.yml +0 -33
- data/test_apps/dummy_roro/config/puma.rb +0 -34
- data/test_apps/dummy_roro/config/routes.rb +0 -3
- data/test_apps/dummy_roro/config/spring.rb +0 -6
- data/test_apps/dummy_roro/config/storage.yml +0 -34
- data/test_apps/dummy_roro/db/seeds.rb +0 -7
- data/test_apps/dummy_roro/docker-compose.yml +0 -51
- data/test_apps/dummy_roro/docker/containers/app/Dockerfile +0 -12
- data/test_apps/dummy_roro/docker/containers/app/circleci.env +0 -2
- data/test_apps/dummy_roro/docker/containers/app/development.env +0 -2
- data/test_apps/dummy_roro/docker/containers/app/production.env +0 -2
- data/test_apps/dummy_roro/docker/containers/database/.keep +0 -0
- data/test_apps/dummy_roro/docker/containers/database/circleci.env +0 -3
- data/test_apps/dummy_roro/docker/containers/database/development.env +0 -3
- data/test_apps/dummy_roro/docker/containers/database/production.env +0 -3
- data/test_apps/dummy_roro/docker/containers/database/staging.env +0 -3
- data/test_apps/dummy_roro/docker/containers/web/Dockerfile +0 -18
- data/test_apps/dummy_roro/docker/containers/web/app.conf +0 -23
- data/test_apps/dummy_roro/docker/containers/web/circleci.env +0 -1
- data/test_apps/dummy_roro/docker/containers/web/development.env +0 -1
- data/test_apps/dummy_roro/docker/containers/web/production.env +0 -1
- data/test_apps/dummy_roro/docker/containers/web/staging.env +0 -1
- data/test_apps/dummy_roro/docker/env_files/circleci.env +0 -12
- data/test_apps/dummy_roro/docker/env_files/circleci.env.enc +0 -14
- data/test_apps/dummy_roro/docker/env_files/production.env +0 -2
- data/test_apps/dummy_roro/docker/env_files/production.env.enc +0 -2
- data/test_apps/dummy_roro/docker/keys/.keep +0 -0
- data/test_apps/dummy_roro/docker/overrides/circleci.yml +0 -19
- data/test_apps/dummy_roro/docker/overrides/production.yml +0 -26
- data/test_apps/dummy_roro/lib/assets/.keep +0 -0
- data/test_apps/dummy_roro/lib/tasks/.keep +0 -0
- data/test_apps/dummy_roro/lib/tasks/deploy.rake +0 -126
- data/test_apps/dummy_roro/log/.keep +0 -0
- data/test_apps/dummy_roro/package.json +0 -5
- data/test_apps/dummy_roro/public/404.html +0 -67
- data/test_apps/dummy_roro/public/422.html +0 -67
- data/test_apps/dummy_roro/public/500.html +0 -66
- data/test_apps/dummy_roro/public/apple-touch-icon-precomposed.png +0 -0
- data/test_apps/dummy_roro/public/apple-touch-icon.png +0 -0
- data/test_apps/dummy_roro/public/favicon.ico +0 -0
- data/test_apps/dummy_roro/public/robots.txt +0 -1
- data/test_apps/dummy_roro/storage/.keep +0 -0
- data/test_apps/dummy_roro/test/application_system_test_case.rb +0 -5
- data/test_apps/dummy_roro/test/controllers/.keep +0 -0
- data/test_apps/dummy_roro/test/fixtures/.keep +0 -0
- data/test_apps/dummy_roro/test/fixtures/files/.keep +0 -0
- data/test_apps/dummy_roro/test/helpers/.keep +0 -0
- data/test_apps/dummy_roro/test/integration/.keep +0 -0
- data/test_apps/dummy_roro/test/mailers/.keep +0 -0
- data/test_apps/dummy_roro/test/models/.keep +0 -0
- data/test_apps/dummy_roro/test/system/.keep +0 -0
- data/test_apps/dummy_roro/test/test_helper.rb +0 -10
- data/test_apps/dummy_roro/tmp/.keep +0 -0
- data/test_apps/dummy_roro/vendor/.keep +0 -0
- data/test_apps/greenfield/.keep +0 -0
- data/vendor/cache/actionpack-5.2.2.gem +0 -0
- data/vendor/cache/actionview-5.2.2.gem +0 -0
- data/vendor/cache/activesupport-5.2.2.gem +0 -0
- data/vendor/cache/addressable-2.5.2.gem +0 -0
- data/vendor/cache/builder-3.2.3.gem +0 -0
- data/vendor/cache/coderay-1.1.2.gem +0 -0
- data/vendor/cache/concurrent-ruby-1.1.4.gem +0 -0
- data/vendor/cache/crass-1.0.4.gem +0 -0
- data/vendor/cache/erubi-1.8.0.gem +0 -0
- data/vendor/cache/ffi-1.9.25.gem +0 -0
- data/vendor/cache/guard-2.15.0.gem +0 -0
- data/vendor/cache/i18n-1.3.0.gem +0 -0
- data/vendor/cache/launchy-2.4.3.gem +0 -0
- data/vendor/cache/listen-3.1.5.gem +0 -0
- data/vendor/cache/loofah-2.2.3.gem +0 -0
- data/vendor/cache/lumberjack-1.0.13.gem +0 -0
- data/vendor/cache/method_source-0.9.2.gem +0 -0
- data/vendor/cache/minitest-5.11.3.gem +0 -0
- data/vendor/cache/minitest-rails-3.0.0.gem +0 -0
- data/vendor/cache/multi_json-1.13.1.gem +0 -0
- data/vendor/cache/net-scp-2.0.0.gem +0 -0
- data/vendor/cache/net-ssh-5.2.0.gem +0 -0
- data/vendor/cache/notiffany-0.1.1.gem +0 -0
- data/vendor/cache/pry-0.12.2.gem +0 -0
- data/vendor/cache/public_suffix-3.0.3.gem +0 -0
- data/vendor/cache/rack-2.0.6.gem +0 -0
- data/vendor/cache/rails-html-sanitizer-1.0.4.gem +0 -0
- data/vendor/cache/railties-5.2.2.gem +0 -0
- data/vendor/cache/rake-10.5.0.gem +0 -0
- data/vendor/cache/rb-fsevent-0.10.3.gem +0 -0
- data/vendor/cache/rb-inotify-0.10.0.gem +0 -0
- data/vendor/cache/ruby_dep-1.5.0.gem +0 -0
- data/vendor/cache/shoulda-3.6.0.gem +0 -0
- data/vendor/cache/shoulda-context-1.2.2.gem +0 -0
- data/vendor/cache/shoulda-matchers-3.1.2.gem +0 -0
- data/vendor/cache/sorcerer-1.0.2.gem +0 -0
- data/vendor/cache/thor-0.20.3.gem +0 -0
- data/vendor/cache/tzinfo-1.2.5.gem +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c448ed5c19cb319a371d294aac99449fbddadf605d0b46e1e694066b0807d7c9
|
4
|
+
data.tar.gz: f668e36a0fd1e5866a9165fea9a6459a45197d0f2188aa84800001541d0cd089
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b3727071acdd794946a8ca8bbd67644f589896d5bddd6675c7c1dfa61ba80dfe91f0c642553c9df09115e1fadc76bd01e8d7064c0808a9f1b08f61b8716800ff
|
7
|
+
data.tar.gz: cccd90560e9664c9f38b6b56ac0d6f2f1266f6a4a7f93f7f7638e95593b26232480c1673c5e70b2950b41618daba87c27fac5a21d7a59fad69f91779c4d42226
|
data/.gitignore
CHANGED
@@ -5,13 +5,10 @@
|
|
5
5
|
/doc/
|
6
6
|
/pkg/
|
7
7
|
/spec/reports/
|
8
|
-
tmp
|
9
|
-
|
10
|
-
tmp/dummy_roro/
|
11
|
-
tmp/greenfield/
|
12
|
-
!tmp/.keep
|
13
|
-
greenfield/**/*
|
8
|
+
tmp/*
|
9
|
+
Gemfile.lock
|
14
10
|
.byebug_history
|
11
|
+
/sandbox/**/*
|
15
12
|
|
16
|
-
|
17
|
-
|
13
|
+
roro/**/*.env
|
14
|
+
roro/**/*.key
|
data/Guardfile
CHANGED
@@ -2,16 +2,23 @@
|
|
2
2
|
# More info at https://github.com/guard/guard#readme
|
3
3
|
|
4
4
|
options = {
|
5
|
-
cli: '',
|
6
|
-
|
5
|
+
cli: '-f',
|
6
|
+
all_on_start: true,
|
7
|
+
all_after_pass: false
|
7
8
|
}
|
8
9
|
|
9
10
|
guard :minitest, options do
|
10
|
-
# with Minitest::Unit
|
11
11
|
|
12
12
|
watch(%r{^test/(.*)\/?test_(.*)\.rb$})
|
13
13
|
watch(%r{^test/(.*)\/?(.*)_test\.rb$})
|
14
|
-
watch(%r{^lib/roro/cli/(.+)\.rb$}) { |m| "test/
|
14
|
+
watch(%r{^lib/roro/cli/(.+)\.rb$}) { |m| "test/cli/#{m[1]}_test.rb" }
|
15
|
+
watch(%r{^lib/roro/cli/rollon/*.rb$}) { 'test/generators' }
|
16
|
+
watch(%r{^lib/roro/cli/roro_configurator.yml$}) { 'test/cli/configuration_test.rb' }
|
17
|
+
# watch(%r{^lib/roro/cli/(.+).rb$}) { 'test' }
|
18
|
+
# watch(%r{^lib/roro/cli/templates/roro(.+).rb$}) do
|
19
|
+
# 'test/generators/rollon/rollon_as_roro_test.rb'
|
20
|
+
# end
|
21
|
+
|
15
22
|
|
16
23
|
watch(%r{^test/thor_helper\.rb$}) { 'test' }
|
17
24
|
|
data/lib/roro.rb
CHANGED
data/lib/roro/cli.rb
CHANGED
@@ -1,21 +1,23 @@
|
|
1
1
|
require 'thor'
|
2
|
-
require 'roro/cli/base'
|
2
|
+
require 'roro/cli/base/base'
|
3
3
|
require 'roro/cli/rollon'
|
4
4
|
require 'roro/cli/greenfield'
|
5
5
|
require 'roro/cli/generate_keys'
|
6
6
|
require 'roro/cli/obfuscate'
|
7
7
|
require 'roro/cli/expose'
|
8
8
|
require 'roro/cli/ruby_gem'
|
9
|
+
require 'roro/cli/generate/config/rails'
|
10
|
+
require 'roro/cli/generate/config'
|
11
|
+
require 'roro/cli/configuration'
|
9
12
|
|
10
13
|
module Roro
|
14
|
+
|
11
15
|
class CLI < Thor
|
12
16
|
|
13
17
|
include Thor::Actions
|
14
|
-
|
18
|
+
|
15
19
|
def self.source_root
|
16
20
|
File.dirname(__FILE__) + '/cli/templates'
|
17
21
|
end
|
18
|
-
|
19
|
-
|
20
22
|
end
|
21
23
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Roro
|
2
|
+
|
3
|
+
class CLI < Thor
|
4
|
+
|
5
|
+
no_commands do
|
6
|
+
|
7
|
+
def copy_dockerignore
|
8
|
+
copy_file 'base/.dockerignore', '.dockerignore'
|
9
|
+
end
|
10
|
+
|
11
|
+
def copy_host_example
|
12
|
+
copy_file 'base/livereload/hosts.example', 'hosts.example'
|
13
|
+
end
|
14
|
+
|
15
|
+
def copy_docker_compose
|
16
|
+
template "base/docker-compose.yml", 'docker-compose.yml', @env_hash
|
17
|
+
end
|
18
|
+
|
19
|
+
def copy_database_yml_pg
|
20
|
+
copy_file "base/config/database.pg.yml", 'config/database.yml', force: @env_hash[:use_force]
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,98 @@
|
|
1
|
+
module Roro
|
2
|
+
|
3
|
+
class CLI < Thor
|
4
|
+
|
5
|
+
no_commands do
|
6
|
+
|
7
|
+
def confirm_directory_not_empty
|
8
|
+
confirm_dependency({
|
9
|
+
system_query: "ls -A",
|
10
|
+
warning: "This is an empty directory. You can generate a new and fully
|
11
|
+
dockerized Rails app using the 'greenfield' command here here but if
|
12
|
+
you want to containerize an existing app -- which is what the 'rollon'
|
13
|
+
command is for -- you'll need to navigate to a directory with an app we
|
14
|
+
can roll onto.",
|
15
|
+
suggestion: "$ roro greenfield",
|
16
|
+
conditional: "!Dir.glob('*').empty?" })
|
17
|
+
end
|
18
|
+
|
19
|
+
def confirm_directory_empty
|
20
|
+
confirm = confirm_dependency({
|
21
|
+
system_query: "ls -A",
|
22
|
+
warning: "this is not an empty directory. Roro will not greenfield a new Rails app unless either a) the current directory is empty or b) you run greenfield with the --force flag",
|
23
|
+
suggestion: "$ roro greenfield --force",
|
24
|
+
conditional: "Dir.glob('*').empty?" })
|
25
|
+
confirm || true
|
26
|
+
end
|
27
|
+
|
28
|
+
def remove_roro_artifacts
|
29
|
+
appname = Dir.pwd.split('/').last
|
30
|
+
check_for_clashes = "docker ps --filter name=#{appname}* -aq"
|
31
|
+
no_artifact_containers = IO.popen(check_for_clashes).count.eql?(0)
|
32
|
+
no_artifact_volumes = IO.popen("docker volume ls --filter name=greenfield*").count > (1)
|
33
|
+
unless (no_artifact_containers && no_artifact_volumes)
|
34
|
+
remove_clashes = ["docker ps --filter name=#{appname}* -aq | xargs docker stop | xargs docker rm"]
|
35
|
+
volumes = %w(db_data app)
|
36
|
+
volumes.each {|v| remove_clashes << "docker volume rm #{appname}_#{v}"}
|
37
|
+
question = [
|
38
|
+
"\n\nWe found some container and volume artifacts which may clash",
|
39
|
+
"with RoRo moving forward. You can verify their existence in a ",
|
40
|
+
"separate terminal with:",
|
41
|
+
"\n\t$ #{check_for_clashes}'\n",
|
42
|
+
"You can remove these artifacts with something like:\n"
|
43
|
+
]
|
44
|
+
remove_clashes.each { |c| question << "\t$ #{c}"}
|
45
|
+
question << "\nWould you like RoRo to attempt to remove them for you?"
|
46
|
+
question = question.join("\n")
|
47
|
+
|
48
|
+
prompt = [question]
|
49
|
+
choices = {'y' => 'Yes', 'n' => 'No'}
|
50
|
+
choices.each { |k,v| prompt << "(#{k}) #{v.to_s}" }
|
51
|
+
answer = ask((prompt.join("\n\n") + "\n\n"),
|
52
|
+
default: 'y', limited_to: choices.keys)
|
53
|
+
remove_clashes.each {|c| system c }
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
def confirm_dependency(options)
|
58
|
+
msg = []
|
59
|
+
msg << ""
|
60
|
+
msg << delineator
|
61
|
+
msg << "It looks like #{options[:warning]}. The following bash command returns false:"
|
62
|
+
msg << "\t$ #{options[:system_query]}"
|
63
|
+
msg << "Please try these instructions:"
|
64
|
+
msg << ("\t" + options[:suggestion])
|
65
|
+
msg << delineator
|
66
|
+
conditional = options[:conditional] ? eval(options[:conditional]) : system(options[:system_query])
|
67
|
+
if conditional == false
|
68
|
+
raise(Roro::Error.new(msg.join("\n\n")))
|
69
|
+
else
|
70
|
+
true
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
def confirm_dependencies
|
75
|
+
dependencies = [
|
76
|
+
{
|
77
|
+
system_query: "which docker",
|
78
|
+
warning: "Docker isn't installed",
|
79
|
+
suggestion: "https://docs.docker.com/install/"
|
80
|
+
}, {
|
81
|
+
system_query: "which docker-compose",
|
82
|
+
warning: "Docker Compose isn't installed",
|
83
|
+
suggestion: "https://docs.docker.com/compose/install/"
|
84
|
+
|
85
|
+
}, {
|
86
|
+
system_query: "docker info",
|
87
|
+
warning: "the Docker daemon isn't running",
|
88
|
+
suggestion: "https://docs.docker.com/config/daemon/#start-the-daemon-manually"
|
89
|
+
}
|
90
|
+
]
|
91
|
+
|
92
|
+
dependencies.each do |dependency|
|
93
|
+
confirm_dependency(dependency)
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
|
2
|
+
module Roro
|
3
|
+
|
4
|
+
class CLI < Thor
|
5
|
+
|
6
|
+
no_commands do
|
7
|
+
|
8
|
+
def insert_roro_gem_into_gemfile
|
9
|
+
insert_into_file 'Gemfile', "gem 'roro'\n\n", before: "group :development, :test do"
|
10
|
+
end
|
11
|
+
|
12
|
+
def insert_db_gem(gem)
|
13
|
+
gem_lines = [
|
14
|
+
/gem\s['"]sqlite3['"]/,
|
15
|
+
/gem\s['"]mysql2['"]/,
|
16
|
+
/gem\s['"]pg['"]/,
|
17
|
+
|
18
|
+
]
|
19
|
+
gem_lines.each do |line|
|
20
|
+
comment_lines 'Gemfile', line
|
21
|
+
gsub_file 'Gemfile', line, 'gem copied over by roro'
|
22
|
+
end
|
23
|
+
insert_into_file 'Gemfile', "gem '#{gem}'\n\n", before: "group :development, :test"
|
24
|
+
end
|
25
|
+
|
26
|
+
def insert_hfci_gem_into_gemfile
|
27
|
+
insert_into_file 'Gemfile', "gem 'handsome_fencer-test'\n\n", after: "group :development, :test do"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
|
2
|
+
module Roro
|
3
|
+
|
4
|
+
class CLI < Thor
|
5
|
+
|
6
|
+
no_commands do
|
7
|
+
|
8
|
+
def config_std_out_true
|
9
|
+
file = 'config/boot.rb'
|
10
|
+
line = "$stdout.sync = true\n\n"
|
11
|
+
prepend_to_file(file, line, force: true)
|
12
|
+
end
|
13
|
+
|
14
|
+
def gitignore_sensitive_files
|
15
|
+
append_to_file ".gitignore", "\nroro/**/*.env\nroro/**/*.key"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
|
2
|
+
module Roro
|
3
|
+
|
4
|
+
class CLI < Thor
|
5
|
+
|
6
|
+
no_commands do
|
7
|
+
|
8
|
+
def choices
|
9
|
+
{ default: 'y', limited_to: ["y", "n"] }
|
10
|
+
end
|
11
|
+
|
12
|
+
def own_if_required
|
13
|
+
system 'sudo chown -R $USER .'
|
14
|
+
end
|
15
|
+
|
16
|
+
def as_system(command)
|
17
|
+
command = OS.linux? ? "sudo #{command}" : command
|
18
|
+
system command
|
19
|
+
end
|
20
|
+
|
21
|
+
def chown_if_required()
|
22
|
+
warning = "It looks like you're running Docker on some flavor of Linux, in which case the files created by your containers are owned by the root user of the container, and not by the user of the host machine. Please change their ownership by supplying your password at the prompt.",
|
23
|
+
action = "system 'sudo chown -R $USER .'"
|
24
|
+
msg = []
|
25
|
+
msg << ""
|
26
|
+
msg << delineator
|
27
|
+
msg << warning
|
28
|
+
msg << ""
|
29
|
+
msg.join("\n\n")
|
30
|
+
puts msg
|
31
|
+
eval(action)
|
32
|
+
end
|
33
|
+
|
34
|
+
def delineator
|
35
|
+
("-" * 80)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
module Roro
|
2
|
+
class Configuration < Thor
|
3
|
+
|
4
|
+
attr_reader :master, :app, :choices, :thor_actions
|
5
|
+
|
6
|
+
def initialize(options={})
|
7
|
+
@options = options || {}
|
8
|
+
@master = YAML.load_file(File.dirname(__FILE__) + '/roro_configurator.yml')
|
9
|
+
@master['services']['server_app']['vendors']['rails']['version'] = `ruby -v`.scan(/\d.\d/).first
|
10
|
+
@choices = @master['services']['server_app']['vendors']['rails']['choices']
|
11
|
+
@app = {}
|
12
|
+
@thor_actions = {}
|
13
|
+
configure
|
14
|
+
end
|
15
|
+
|
16
|
+
no_commands do
|
17
|
+
|
18
|
+
def configure
|
19
|
+
set_from_defaults
|
20
|
+
case
|
21
|
+
when @options['interactive'] && File.exist?('.roro_config.yml')
|
22
|
+
set_from_roro_config
|
23
|
+
set_from_interactive
|
24
|
+
when File.exist?('.roro_config.yml')
|
25
|
+
set_from_roro_config
|
26
|
+
when @options['interactive']
|
27
|
+
set_from_interactive
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def set_from_defaults
|
32
|
+
svcs = @master['services']
|
33
|
+
rails = svcs['server_app']['vendors']['rails']
|
34
|
+
@app = {
|
35
|
+
'main_app_name' => Dir.pwd.split('/').last,
|
36
|
+
'database_host' => rails['env_vars']['DATABASE_HOST'],
|
37
|
+
'ruby_version' => rails['version'],
|
38
|
+
'frontend_service' => svcs['frontend']['name'],
|
39
|
+
'webserver_service' => svcs['webserver']['default'],
|
40
|
+
'database_service' => svcs['database']['name'],
|
41
|
+
'database_vendor' => svcs['database']['vendor'],
|
42
|
+
}
|
43
|
+
@choices.each { |key, value| @thor_actions[key] = value["default"] }
|
44
|
+
end
|
45
|
+
|
46
|
+
def set_from_roro_config
|
47
|
+
yaml = YAML.load_file(Dir.pwd + '/.roro_config.yml')
|
48
|
+
yaml.each { |key, value| @app[key] = value }
|
49
|
+
if yaml['thor_actions']
|
50
|
+
yaml['thor_actions'].each do |key, value|
|
51
|
+
@thor_actions[key] = value
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def set_from_interactive
|
57
|
+
@choices.each do |key, v|
|
58
|
+
prompt = ["\n\n" + v['question']]
|
59
|
+
v['choices'].each { |k,v| prompt << "(#{k}) #{v.to_s}" }
|
60
|
+
answer = ask((prompt.join("\n\n") + "\n\n"),
|
61
|
+
default: v['default'],
|
62
|
+
limited_to: v['choices'].keys)
|
63
|
+
@thor_actions[key] = answer
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Roro
|
2
|
+
class CLI < Thor
|
3
|
+
include Thor::Actions
|
4
|
+
|
5
|
+
desc "generate::config::roro", "Generates a config file at .roro_config.yml"
|
6
|
+
map "generate::config::roro" => "generate_roro_config"
|
7
|
+
|
8
|
+
|
9
|
+
def generate_roro_config
|
10
|
+
create_file ".roro_config.yml", @config.app.to_yaml
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# module Roro
|
2
|
+
# class CLI < Thor
|
3
|
+
# include Thor::Actions
|
4
|
+
|
5
|
+
# desc "generate::config::rails", "Generates a config file to use roro with
|
6
|
+
# a rails app at .roro.yml"
|
7
|
+
# map "generate::config::rails" => "generate_config_rails"
|
8
|
+
|
9
|
+
# def generate_config_rails
|
10
|
+
# master_config = YAML.load_file(ENV['PWD'] + "/lib/roro/cli/roro_configurator.yml")
|
11
|
+
# template 'base/.roro_config.yml', '.roro_config.yml'
|
12
|
+
# end
|
13
|
+
|
14
|
+
# no_commands do
|
15
|
+
# end
|
16
|
+
# end
|
17
|
+
# end
|
@@ -0,0 +1 @@
|
|
1
|
+
require_relative 'config/rails'
|