appscrolls 0.7.0
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.
- data/.gitignore +8 -0
- data/.rspec +2 -0
- data/.travis.yml +6 -0
- data/ChangeLog.md +63 -0
- data/Gemfile +3 -0
- data/Guardfile +18 -0
- data/MIT_LICENSE +20 -0
- data/README.md +154 -0
- data/Rakefile +78 -0
- data/appscrolls.gemspec +32 -0
- data/bin/appscrolls +7 -0
- data/features/step_definitions/common_steps.rb +211 -0
- data/features/support/common.rb +51 -0
- data/features/support/env.rb +18 -0
- data/lib/appscrolls.rb +10 -0
- data/lib/appscrolls/command.rb +85 -0
- data/lib/appscrolls/config.rb +86 -0
- data/lib/appscrolls/scroll.rb +106 -0
- data/lib/appscrolls/scrolls.rb +38 -0
- data/lib/appscrolls/template.rb +67 -0
- data/lib/rails/generators/.DS_Store +0 -0
- data/lib/rails/generators/run_template/USAGE +13 -0
- data/lib/rails/generators/run_template/run_template_generator.rb +13 -0
- data/sample.rb +75 -0
- data/scrolls/active_admin.rb +19 -0
- data/scrolls/capybara.rb +34 -0
- data/scrolls/cucumber.rb +21 -0
- data/scrolls/delayed_job.rb +94 -0
- data/scrolls/env_yaml.rb +53 -0
- data/scrolls/eycloud.rb +72 -0
- data/scrolls/eycloud_recipes_on_deploy.rb +20 -0
- data/scrolls/git.rb +17 -0
- data/scrolls/github.rb +38 -0
- data/scrolls/guard.rb +75 -0
- data/scrolls/jquery.rb +11 -0
- data/scrolls/mysql.rb +51 -0
- data/scrolls/passenger.rb +11 -0
- data/scrolls/postgresql.rb +54 -0
- data/scrolls/prototype.rb +21 -0
- data/scrolls/puma.rb +11 -0
- data/scrolls/rails_basics.rb +54 -0
- data/scrolls/redis.rb +19 -0
- data/scrolls/resque.rb +59 -0
- data/scrolls/rspec.rb +21 -0
- data/scrolls/simple_form.rb +19 -0
- data/scrolls/split.rb +35 -0
- data/scrolls/spork.rb +19 -0
- data/scrolls/sqlite3.rb +10 -0
- data/scrolls/test_unit.rb +11 -0
- data/scrolls/thin.rb +10 -0
- data/scrolls/twitter_bootstrap.rb +41 -0
- data/scrolls/unicorn.rb +10 -0
- data/scrolls/zzz/activerecord.rb +69 -0
- data/scrolls/zzz/cancan.rb +16 -0
- data/scrolls/zzz/carrierwave.rb +42 -0
- data/scrolls/zzz/carrierwave_direct.rb +13 -0
- data/scrolls/zzz/cartographer.rb +33 -0
- data/scrolls/zzz/devise.rb +52 -0
- data/scrolls/zzz/devise_invitable.rb +23 -0
- data/scrolls/zzz/event_calendar.rb +12 -0
- data/scrolls/zzz/factory_girl.rb +38 -0
- data/scrolls/zzz/ffaker.rb +22 -0
- data/scrolls/zzz/fixture_builder.rb +35 -0
- data/scrolls/zzz/forgery.rb +15 -0
- data/scrolls/zzz/haml.rb +11 -0
- data/scrolls/zzz/heroku.rb +58 -0
- data/scrolls/zzz/hoptoad.rb +34 -0
- data/scrolls/zzz/inherited_resources.rb +12 -0
- data/scrolls/zzz/intercom.rb +35 -0
- data/scrolls/zzz/jammit.rb +43 -0
- data/scrolls/zzz/jasmine.rb +12 -0
- data/scrolls/zzz/mini_magick.rb +13 -0
- data/scrolls/zzz/mongo_mapper.rb +20 -0
- data/scrolls/zzz/mongohq.rb +61 -0
- data/scrolls/zzz/mongoid.rb +20 -0
- data/scrolls/zzz/mootools.rb +23 -0
- data/scrolls/zzz/newrelic.rb +11 -0
- data/scrolls/zzz/nifty_generators.rb +21 -0
- data/scrolls/zzz/oa_oauth.rb +12 -0
- data/scrolls/zzz/omniauth.rb +55 -0
- data/scrolls/zzz/paper_trail.rb +17 -0
- data/scrolls/zzz/pow.rb +12 -0
- data/scrolls/zzz/rails_admin.rb +22 -0
- data/scrolls/zzz/rails_dev_tweaks.rb +10 -0
- data/scrolls/zzz/rails_erd.rb +9 -0
- data/scrolls/zzz/rails_footnotes.rb +14 -0
- data/scrolls/zzz/ransack.rb +32 -0
- data/scrolls/zzz/rmagick.rb +13 -0
- data/scrolls/zzz/sass.rb +13 -0
- data/scrolls/zzz/sequel.rb +13 -0
- data/scrolls/zzz/settingslogic.rb +43 -0
- data/scrolls/zzz/shoulda_matchers.rb +11 -0
- data/scrolls/zzz/sidekiq.rb +23 -0
- data/scrolls/zzz/slim.rb +11 -0
- data/scrolls/zzz/thinking_sphinx.rb +14 -0
- data/scrolls/zzz/vanity.rb +35 -0
- data/spec/appscrolls/config_spec.rb +99 -0
- data/spec/appscrolls/scroll_spec.rb +103 -0
- data/spec/appscrolls/scrolls/sanity_spec.rb +30 -0
- data/spec/appscrolls/scrolls_spec.rb +24 -0
- data/spec/appscrolls/template_spec.rb +57 -0
- data/spec/spec_helper.rb +11 -0
- data/spec/support/rails_directory.rb +17 -0
- data/spec/support/template_runner.rb +28 -0
- data/templates/helpers.erb +45 -0
- data/templates/layout.erb +44 -0
- data/templates/new_scroll.erb +28 -0
- data/templates/scroll.erb +10 -0
- data/version.rb +3 -0
- metadata +297 -0
|
Binary file
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
Description:
|
|
2
|
+
Apply an application template to an existing application
|
|
3
|
+
|
|
4
|
+
Application templates are traditionally used for new applications. Such as:
|
|
5
|
+
|
|
6
|
+
rails new myapp -m /path/to/template.rb
|
|
7
|
+
|
|
8
|
+
This generator allows the templates to be reused/reapplied to this existing application.
|
|
9
|
+
|
|
10
|
+
Example:
|
|
11
|
+
rails g run_template /path/to/template.rb
|
|
12
|
+
rails g run_template https://mycompany.com/template.rb
|
|
13
|
+
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
class RunTemplateGenerator < Rails::Generators::Base
|
|
2
|
+
source_root File.expand_path('../templates', __FILE__)
|
|
3
|
+
|
|
4
|
+
argument :template_path, :desc => "Path to an application template"
|
|
5
|
+
|
|
6
|
+
def apply_template
|
|
7
|
+
path = template_path
|
|
8
|
+
unless path =~ /^https?:\/\//
|
|
9
|
+
path = File.expand_path(path, Dir.pwd)
|
|
10
|
+
end
|
|
11
|
+
apply path
|
|
12
|
+
end
|
|
13
|
+
end
|
data/sample.rb
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# >---------------------------------------------------------------------------<
|
|
2
|
+
#
|
|
3
|
+
# ___ ____ ____
|
|
4
|
+
# / _ | ___ ___ / __/__________ / / /__
|
|
5
|
+
# / __ |/ _ \/ _ \ _\ \/ __/ __/ _ \/ / (_-<
|
|
6
|
+
# /_/ |_/ .__/ .__/ /___/\__/_/ \___/_/_/___/
|
|
7
|
+
# /_/ /_/
|
|
8
|
+
#
|
|
9
|
+
#
|
|
10
|
+
# This template was generated by App Scrolls, the amazing and awesome Rails
|
|
11
|
+
# application template builder. Get started at http://appscrolls.org
|
|
12
|
+
#
|
|
13
|
+
# ___________________________________________________________________________
|
|
14
|
+
# |/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
|
|
15
|
+
# | | |
|
|
16
|
+
# | Name: | b9755a02fbf7886df8b2 |
|
|
17
|
+
# | URL: | http://railswizard.local/b9755a02fbf7886df8b2.rb |
|
|
18
|
+
# | Updated: | March 12, 2011 at 21:47PM |
|
|
19
|
+
# | | |
|
|
20
|
+
# |\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\|
|
|
21
|
+
# ---------------------------------------------------------------------------
|
|
22
|
+
|
|
23
|
+
# >----------------------------[ Initial Setup ]------------------------------<
|
|
24
|
+
|
|
25
|
+
initializer 'generators.rb', <<-RUBY
|
|
26
|
+
Rails.application.config.generators do |g|
|
|
27
|
+
end
|
|
28
|
+
RUBY
|
|
29
|
+
|
|
30
|
+
scrolls = ["activerecord", "devise", "prototype"]
|
|
31
|
+
|
|
32
|
+
def say_custom(tag, text); say "\033[1m\033[36m" + tag.to_s.rjust(10) + "\033[0m" + " #{text}" end
|
|
33
|
+
def say_scroll(name); say "\033[1m\033[36m" + "scroll".rjust(10) + "\033[0m" + " Running #{name} scroll..." end
|
|
34
|
+
def say_wizard(text); say_custom('wizard', text) end
|
|
35
|
+
def ask_wizard(question)
|
|
36
|
+
ask "\033[1m\033[30m\033[46m" + "prompt".rjust(10) + "\033[0m\033[36m" + " #{question}\033[0m"
|
|
37
|
+
end
|
|
38
|
+
def yes_wizard?(question)
|
|
39
|
+
answer = ask_wizard(question + " \033[33m(y/n)\033[0m")
|
|
40
|
+
case answer.downcase
|
|
41
|
+
when "yes", "y"
|
|
42
|
+
true
|
|
43
|
+
when "no", "n"
|
|
44
|
+
false
|
|
45
|
+
else
|
|
46
|
+
yes_wizard?(question)
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
def no_wizard?(question); !yes_wizard?(question) end
|
|
50
|
+
def multiple_choice(question, choices)
|
|
51
|
+
say_custom('question', question)
|
|
52
|
+
values = {}
|
|
53
|
+
choices.each_with_index do |choice,i|
|
|
54
|
+
values[(i + 1).to_s] = choice[1]
|
|
55
|
+
say_custom (i + 1).to_s + '.', choice[0]
|
|
56
|
+
end
|
|
57
|
+
answer = ask_wizard("Enter your selection:") while !values.keys.include?(answer)
|
|
58
|
+
values[answer]
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
@after_blocks = []
|
|
62
|
+
def after_bundler(&block); @after_blocks << block; end
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
say_wizard ask_wizard("What do you want to know?")
|
|
66
|
+
say_wizard yes_wizard?("Is there a god?")
|
|
67
|
+
say_wizard multiple_choice("What do you like?", [["Puppies","puppies"],["Kitties","kitties"]])
|
|
68
|
+
|
|
69
|
+
# >-----------------------------[ Run Bundler ]-------------------------------<
|
|
70
|
+
|
|
71
|
+
say_wizard "Running Bundler install. This will take a while."
|
|
72
|
+
run 'bundle install'
|
|
73
|
+
say_wizard "Running after Bundler callbacks."
|
|
74
|
+
@after_blocks.each{|b| b.call}
|
|
75
|
+
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#unless scrolls.include? 'sass-rails'
|
|
2
|
+
# gem 'sass-rails'
|
|
3
|
+
#end
|
|
4
|
+
gem 'activeadmin'
|
|
5
|
+
|
|
6
|
+
after_everything do
|
|
7
|
+
generate "active_admin:install"
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
__END__
|
|
11
|
+
|
|
12
|
+
name: Active Admin
|
|
13
|
+
description: "The administration framework for Ruby on Rails applications"
|
|
14
|
+
author: jonochang
|
|
15
|
+
website: http://activeadmin.info/
|
|
16
|
+
|
|
17
|
+
exclusive: administration
|
|
18
|
+
category: administration
|
|
19
|
+
tags: [administration]
|
data/scrolls/capybara.rb
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
gem 'capybara', :group => [:development, :test]
|
|
2
|
+
|
|
3
|
+
after_bundler do
|
|
4
|
+
create_file "spec/support/capybara.rb", <<-RUBY
|
|
5
|
+
require 'capybara/rails'
|
|
6
|
+
require 'capybara/rspec'
|
|
7
|
+
RUBY
|
|
8
|
+
|
|
9
|
+
create_file "spec/requests/home_spec.rb", <<-RUBY
|
|
10
|
+
require 'spec_helper'
|
|
11
|
+
|
|
12
|
+
describe 'visiting the homepage' do
|
|
13
|
+
before do
|
|
14
|
+
visit '/'
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it 'should have a body' do
|
|
18
|
+
page.should have_css('body')
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
RUBY
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
__END__
|
|
25
|
+
|
|
26
|
+
name: Capybara
|
|
27
|
+
description: "Use the Capybara acceptance testing libraries with RSpec."
|
|
28
|
+
author: mbleigh
|
|
29
|
+
|
|
30
|
+
requires: [rspec]
|
|
31
|
+
run_after: [rspec]
|
|
32
|
+
exclusive: acceptance_testing
|
|
33
|
+
category: testing
|
|
34
|
+
tags: [acceptance]
|
data/scrolls/cucumber.rb
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
gem_group :test do
|
|
2
|
+
gem 'cucumber-rails', :require => false # https://github.com/cucumber/cucumber-rails/issues/202
|
|
3
|
+
gem 'capybara'
|
|
4
|
+
gem 'database_cleaner'
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
after_bundler do
|
|
9
|
+
rake "db:create"
|
|
10
|
+
generate "cucumber:install --capybara#{' --rspec' if scrolls.include?('rspec')}#{' -D' unless scrolls.include?('activerecord')}"
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
__END__
|
|
14
|
+
|
|
15
|
+
name: Cucumber
|
|
16
|
+
description: "Use Cucumber for integration testing with Capybara."
|
|
17
|
+
author: mbleigh
|
|
18
|
+
|
|
19
|
+
exclusive: acceptance_testing
|
|
20
|
+
category: testing
|
|
21
|
+
tags: [acceptance]
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
gem 'delayed_job_active_record'
|
|
2
|
+
gem 'delayed_job_admin'
|
|
3
|
+
|
|
4
|
+
if config["admin"]
|
|
5
|
+
inject_into_class "app/controllers/application_controller.rb", "ApplicationController" do
|
|
6
|
+
<<-RUBY
|
|
7
|
+
|
|
8
|
+
def delayed_job_admin_authentication
|
|
9
|
+
# authentication_logic_goes_here
|
|
10
|
+
true
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
RUBY
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
create_file "readmes/delayed_job_admin.md", <<-MD
|
|
17
|
+
# Delayed Job Admin README
|
|
18
|
+
|
|
19
|
+
Delayed Job Admin console is available at [/delayed_job_admin](http://localhost:3000/delayed_job_admin).
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
open http://localhost:3000/delayed_job_admin
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Steps to complete
|
|
26
|
+
|
|
27
|
+
### Authentication
|
|
28
|
+
|
|
29
|
+
By default, there is no authentication or authorization protecting access to `/delayed_job_admin`.
|
|
30
|
+
|
|
31
|
+
Please go to `app/controllers/application_controller.rb` and edit the following method:
|
|
32
|
+
|
|
33
|
+
```ruby
|
|
34
|
+
def delayed_job_admin_authentication
|
|
35
|
+
# authentication_logic_goes_here
|
|
36
|
+
true
|
|
37
|
+
end
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
For example, if you are using the Devise gem and have an Admin model:
|
|
41
|
+
|
|
42
|
+
```ruby
|
|
43
|
+
def delayed_job_admin_authentication
|
|
44
|
+
authenticate_admin!
|
|
45
|
+
end
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
MD
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
if scroll? "eycloud_recipes_on_deploy"
|
|
52
|
+
gem 'eycloud-recipe-delayed_job', :group => :eycloud
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
after_bundler do
|
|
57
|
+
generate 'delayed_job'
|
|
58
|
+
|
|
59
|
+
if scroll? "eycloud_recipes_on_deploy"
|
|
60
|
+
say_wizard 'Installing deploy hooks to restart delayed_job after deploys'
|
|
61
|
+
run "touch deploy/before_restart.rb"
|
|
62
|
+
append_file "deploy/before_restart.rb", <<-RUBY
|
|
63
|
+
on_app_servers_and_utilities do
|
|
64
|
+
node[:applications].each do |app_name, data|
|
|
65
|
+
sudo 'echo "sleep 20 && monit -g dj_\#{app_name} restart all" | at now'
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
RUBY
|
|
69
|
+
|
|
70
|
+
append_file "deploy/cookbooks/main/recipes/default.rb", "\nrequire_recipe 'delayed_job'\n"
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
after_everything do
|
|
75
|
+
say_custom "readme", "Delayed Job Admin"
|
|
76
|
+
run %q{cat "readmes/delayed_job_admin.md"}
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
__END__
|
|
80
|
+
|
|
81
|
+
name: Delayed Job
|
|
82
|
+
description: Use Delayed Job to handle background jobs
|
|
83
|
+
author: drnic
|
|
84
|
+
|
|
85
|
+
exclusive: worker
|
|
86
|
+
category: worker
|
|
87
|
+
tags: [worker,background-tasks]
|
|
88
|
+
|
|
89
|
+
run_after: [eycloud_recipes_on_deploy]
|
|
90
|
+
|
|
91
|
+
config:
|
|
92
|
+
- admin:
|
|
93
|
+
type: boolean
|
|
94
|
+
prompt: "Install simple admin interface to Delayed Job?"
|
data/scrolls/env_yaml.rb
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
say_wizard "Generating config/env.yaml..."
|
|
4
|
+
|
|
5
|
+
append_file "config/application.rb", <<-RUBY
|
|
6
|
+
|
|
7
|
+
require 'env_yaml'
|
|
8
|
+
RUBY
|
|
9
|
+
|
|
10
|
+
create_file "lib/env_yaml.rb", <<-RUBY
|
|
11
|
+
require 'yaml'
|
|
12
|
+
begin
|
|
13
|
+
env_yaml = YAML.load_file(File.dirname(__FILE__) + '/../config/env.yml')
|
|
14
|
+
if env_hash = env_yaml[ENV['RACK_ENV'] || ENV['RAILS_ENV'] || 'development']
|
|
15
|
+
env_hash.each_pair do |k,v|
|
|
16
|
+
ENV[k] = v.to_s
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
rescue StandardError => e
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
RUBY
|
|
23
|
+
|
|
24
|
+
create_file "config/env.yml", <<-YAML
|
|
25
|
+
defaults: &defaults
|
|
26
|
+
ENV_YAML: true
|
|
27
|
+
|
|
28
|
+
development:
|
|
29
|
+
<<: *defaults
|
|
30
|
+
|
|
31
|
+
test:
|
|
32
|
+
<<: *defaults
|
|
33
|
+
|
|
34
|
+
production:
|
|
35
|
+
<<: *defaults
|
|
36
|
+
YAML
|
|
37
|
+
|
|
38
|
+
def env(k,v,rack_env='development')
|
|
39
|
+
inject_into_file "config/env.yml", :after => "#{rack_env}:\n <<: *defaults" do
|
|
40
|
+
<<-YAML
|
|
41
|
+
#{k}: #{v.inspect}
|
|
42
|
+
YAML
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
__END__
|
|
47
|
+
|
|
48
|
+
name: EnvYAML
|
|
49
|
+
description: "Allows you to set environment variables in a YAML file at config/env.yaml"
|
|
50
|
+
author: mbleigh
|
|
51
|
+
|
|
52
|
+
category: other
|
|
53
|
+
tags: [utilities, configuration]
|
data/scrolls/eycloud.rb
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
@name = File.basename(File.expand_path("."))
|
|
2
|
+
|
|
3
|
+
gem_group :development do
|
|
4
|
+
gem 'ey_cli'
|
|
5
|
+
gem 'engineyard'
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
gem 'ey_config' # for partner services
|
|
9
|
+
|
|
10
|
+
required_dbs = %w[mysql postgresql]
|
|
11
|
+
required_app_servers = %w[unicorn trinidad passenger puma thin]
|
|
12
|
+
|
|
13
|
+
selected_db = required_dbs.find {|db| scroll? db }
|
|
14
|
+
unless selected_db
|
|
15
|
+
say_custom "eycloud", "Please include a DB choice from: #{required_dbs.join ", "}"
|
|
16
|
+
exit_now = true
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
selected_app_server = required_app_servers.find {|app| scroll? app }
|
|
20
|
+
unless selected_app_server
|
|
21
|
+
say_custom "eycloud", "Please include an App Server choice from: #{required_app_servers.join ", "}"
|
|
22
|
+
exit_now = true
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
exit 1 if exit_now
|
|
26
|
+
|
|
27
|
+
after_everything do
|
|
28
|
+
@git_url ||= `git config remote.origin.url`.strip
|
|
29
|
+
if @git_url.size == 0
|
|
30
|
+
say_custom "eycloud", "Skipping... no git URI discovered"
|
|
31
|
+
else
|
|
32
|
+
run "ey login"
|
|
33
|
+
|
|
34
|
+
if @mysql_stack
|
|
35
|
+
say_custom "eycloud", "Using mysql #{@mysql_stack}"
|
|
36
|
+
elsif @postgresql_stack
|
|
37
|
+
say_custom "eycloud", "Using postgresql #{@postgresql_stack}"
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
framework_env = multiple_choice "Which framework environment?", [%w[Production production], %w[Staging staging]]
|
|
41
|
+
|
|
42
|
+
# TODO check for app name first
|
|
43
|
+
app_name = (@repo_name && @repo_name.size > 0) ? @repo_name : @name
|
|
44
|
+
say_custom "eycloud", "Checking for availability of #{app_name}"
|
|
45
|
+
@app_names ||= `ey_cli apps | grep "-" | sed "s/.* //"`.split(/\n/)
|
|
46
|
+
while @app_names.include?(app_name)
|
|
47
|
+
app_name = ask_wizard "Application #{app_name} is already taken; what"
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
name = File.basename(".")
|
|
51
|
+
command = "ey_cli create_app --name #{app_name} --type rails3 "
|
|
52
|
+
command += "--git #{@git_url} "
|
|
53
|
+
command += "--framework_env #{framework_env} "
|
|
54
|
+
command += "--env_name #{@name}_#{framework_env} "
|
|
55
|
+
command += "--stack #{selected_app_server} "
|
|
56
|
+
command += "--solo"
|
|
57
|
+
run command
|
|
58
|
+
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
__END__
|
|
63
|
+
|
|
64
|
+
name: Engine Yard Cloud
|
|
65
|
+
description: The Most Powerful Ruby Cloud
|
|
66
|
+
author: drnic
|
|
67
|
+
|
|
68
|
+
category: deployment
|
|
69
|
+
exclusive: deployment
|
|
70
|
+
|
|
71
|
+
requires: [github, eycloud_recipes_on_deploy]
|
|
72
|
+
run_after: [github, eycloud_recipes_on_deploy]
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
gem "engineyard-recipes", :group => [:development]
|
|
2
|
+
|
|
3
|
+
after_bundler do
|
|
4
|
+
say_custom "eycloud", "Setting up deploy hooks..."
|
|
5
|
+
run "bundle exec ey-recipes init --on-deploy --chef"
|
|
6
|
+
run "bundle update"
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
__END__
|
|
11
|
+
|
|
12
|
+
name: Recipes on Deploy
|
|
13
|
+
description: Run Engine Yard Cloud recipes during deployment instead of independently.
|
|
14
|
+
author: drnic
|
|
15
|
+
website: https://github.com/engineyard/engineyard-recipes
|
|
16
|
+
|
|
17
|
+
requires: [eycloud]
|
|
18
|
+
run_before: [eycloud]
|
|
19
|
+
category: deployment
|
|
20
|
+
tags: [background, worker]
|
data/scrolls/git.rb
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
after_everything do
|
|
2
|
+
git :init
|
|
3
|
+
git :add => '.'
|
|
4
|
+
git :commit => '-m "Initial import."'
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
__END__
|
|
8
|
+
|
|
9
|
+
name: Git
|
|
10
|
+
description: "Provides basic Git setup for the Rails app and commits the initial repository."
|
|
11
|
+
author: mbleigh
|
|
12
|
+
|
|
13
|
+
exclusive: scm
|
|
14
|
+
category: deployment
|
|
15
|
+
|
|
16
|
+
run_before: [git, eycloud, heroku]
|
|
17
|
+
|