Sha256: 1bf3724d84006aabed21460629fd38b7a5bedb95cbfe9455602b182d2c629676

Contents?: true

Size: 1.34 KB

Versions: 1

Compression:

Stored size: 1.34 KB

Contents

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 'sleep 5s'
      system 'sudo chown -R $USER:$USER .'
      system 'sleep 5s'
      system 'sudo docker-compose run web rails new . --force --database=postgresql --skip-bundle'
      system 'sleep 5s'
      system 'sudo chown -R $USER:$USER .'
      system 'sleep 5s'
      system 'sudo docker-compose build'
      system 'sleep 5s'
      system 'mv -f config/database.yml.example config/database.yml'
      system 'sleep 5s'
      system 'chmod 1777 /tmp'
      system 'sudo docker-compose up -d'
      system 'sleep 5s'
      system 'sudo chown -R $USER:$USER .'
      system 'sleep 5s'
      system 'sudo docker-compose run web bin/rails db:create'
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
roro-0.1.1 lib/roro/cli/greenfield.rb