Sha256: d4c19e3b6dbc83b40277a454027d5d905970ccdb64cbc5a51736bad3d33d7720

Contents?: true

Size: 1.08 KB

Versions: 2

Compression:

Stored size: 1.08 KB

Contents

require 'os'
module Roro

  class CLI < Thor

    include Thor::Actions

    desc "greenfield", "Greenfield a brand new rails app using Docker's instructions"

    method_option :env_vars, type: :hash, default: {}, desc: "Pass a list of environment variables like so: env:var", banner: "key1:value1 key2:value2"
    method_option :interactive, desc: "Set up your environment variables as you go."
    method_option :force, desc: "force over-write of existing files"

    def greenfield

      if !Dir['./*'].empty? && options["force"].nil?
        raise Roro::Error.new("Oops -- Roro can't greenfield a new Rails app for you unless the current directory is empty.")
      end
      copy_greenfield_files
      system 'sudo docker-compose run web rails new . --force --database=postgresql --skip-bundle'
      system 'sudo chown -R $USER .' if OS.linux?
      system 'sudo docker-compose build'
      system 'mv -f config/database.yml.example config/database.yml'
      system 'sudo docker-compose up --build --force-recreate -d '
      system 'sudo docker-compose run web bin/rails db:create'
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
roro-0.1.5 lib/roro/cli/greenfield.rb
roro-0.1.3 lib/roro/cli/greenfield.rb