Class: Teleport::CapistranoGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/teleport/capistrano.rb

Instance Method Summary collapse

Instance Method Details

#addObject



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/generators/teleport/capistrano.rb', line 5

def add
  gem_group :development do
    gem 'capistrano'
    gem 'capistrano-rbenv'
    gem 'capistrano-bundler'
    gem 'capistrano-rails'
    gem 'capistrano-sidekiq'
    gem 'capistrano3-puma'
  end

  Bundler.with_clean_env do
    run "bundle install"
  end

  directory 'capistrano/tasks', 'lib/capistrano/tasks'
  directory 'capistrano/shared', 'config/deploy/shared'

  run 'cap install'

  uncomment_lines 'Capfile', /require 'capistrano\/rbenv'/
  uncomment_lines 'Capfile', /require 'capistrano\/bundler'/
  uncomment_lines 'Capfile', /require 'capistrano\/rails\/assets'/
  uncomment_lines 'Capfile', /require 'capistrano\/rails\/migrations'/
  insert_into_file "Capfile",
                   "require 'capistrano/sidekiq'\n",
                   after: "require 'capistrano/rails/migrations'\n"
  insert_into_file "Capfile",
                   %Q{
require 'capistrano/puma'
require 'capistrano/puma/workers'
require 'capistrano/puma/jungle'
require 'capistrano/puma/monit'
require 'capistrano/puma/nginx'
                   },
                   after: "require 'capistrano/sidekiq'\n"

  @app_name = ask 'App name', :bold, default: 'blog'
  @git_repo_url = ask 'Git repo', :bold, default: '[email protected]:itsNikolay/puma-testing.git'
  @deploy_user = ask 'Deploy username default', :bold, default: 'deploy'
  @ruby_version = ask 'Ruby version', :bold, limited_to: ['2.1.5', '2.1.4', '2.1.3', '2.1.2', '1.9.3']
  @production_server_address = ask 'Production server', :bold, default: '192.X.X.X'

  template 'capistrano/deploy/deploy.rb', 'config/deploy.rb'
  template 'capistrano/deploy/production.rb', 'config/deploy/production.rb'
  if yes?('Add staging? (y/n)')
    @staging_server_address = ask 'Staging server', :bold, default: '192.X.X.X'
    template 'capistrano/deploy/staging.rb', 'config/deploy/staging.rb'
  end

  say 'to setup server run: $ cap staging deploy:setup_config', :bold
end