brightbox 2.3.6 → 2.3.7

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.
@@ -30,6 +30,8 @@ require 'brightbox/version'
30
30
 
31
31
  @options = {}
32
32
 
33
+ @app_server = :passenger
34
+
33
35
  def has_required_options?
34
36
  [@server].all?
35
37
  end
@@ -57,7 +59,7 @@ opts = OptionParser.new do |opts|
57
59
  ) { |value| @server = value }
58
60
 
59
61
  opts.on("-a TYPE", "--app TYPE", [:mongrel, :passenger],
60
- "App server type, mongrel or passenger"
62
+ "App server type, mongrel or passenger (default is passenger)"
61
63
  ) { |value| @app_server = value }
62
64
 
63
65
  begin
@@ -106,37 +108,7 @@ files = {
106
108
 
107
109
  "lib/tasks/bbgem.rake" => unindent(<<-FILE),
108
110
  # Generated with '#{opts.program_name}' on #{Time.now}
109
- unless Rake::Task.task_defined?("gems:install")
110
- def install_gems
111
- gems={
112
- "ferret" => "~> 0.11",
113
- "will_paginate" => "> 0"
114
- }
115
- gems.each_pair do |gem, version|
116
- puts "Checking for \#{gem} at \#{version}"
117
- system("gem spec \#{gem} --version '\#{version}' 2>/dev/null|egrep -q '^name:' ||
118
- sudo gem install -y --no-ri --no-rdoc --version '\#{version}' \#{gem}")
119
- end
120
- end
121
-
122
- def gems_upgrade_notice
123
- puts "This is a dummy task installed by the Brightbox command"
124
- puts "If you need gems to make your application work"
125
- puts "Uncomment the install command and alter the gems on the list"
126
- puts "... or upgrade to Rails >= 2.1 and use the inbuilt facilities"
127
- end
128
-
129
- namespace(:gems) do
130
- desc "Installs all required gems for this application."
131
- task :install do
132
- gems_upgrade_notice
133
- #install_gems
134
- end
135
- end
136
- end
137
-
138
111
  unless Rake::Task.task_defined?("db:create")
139
-
140
112
  namespace(:db) do
141
113
  task :create do
142
114
  puts "This is a dummy task installed by the Brightbox command"
@@ -148,8 +120,18 @@ unless Rake::Task.task_defined?("db:create")
148
120
  end
149
121
  unless Rake::Task.task_defined?("db:check:config")
150
122
 
123
+ def rails_env
124
+ if defined?(Rails) and Rails.respond_to? :env
125
+ Rails.env
126
+ elsif defined?(RAILS_ENV)
127
+ RAILS_ENV
128
+ else
129
+ "production"
130
+ end
131
+ end
132
+
151
133
  def pe(message)
152
- p "\#{RAILS_ENV}: \#{message}"
134
+ p "\#{rails_env}: \#{message}"
153
135
  end
154
136
 
155
137
  def brightbox_sanity_checks(config)
@@ -158,8 +140,8 @@ unless Rake::Task.task_defined?("db:check:config")
158
140
  end
159
141
  db=config['database']
160
142
  host=config['host']
161
- if host && host != 'sqlreadwrite.brightbox.net'
162
- pe "using '\#{host}', not the 'sqlreadwrite.brightbox.net' cluster"
143
+ if host && host !~ /^.*(sqlreadwrite|mysql\.vm)\.brightbox.net$/
144
+ pe "'\#{host}' does not look like one of the Brightbox MySQL clusters"
163
145
  elsif db && db !~ /\\A\#{config['username']}/
164
146
  pe "database name should start with '\#{config['username']}' if using cluster"
165
147
  end
@@ -181,7 +163,7 @@ unless Rake::Task.task_defined?("db:check:config")
181
163
  desc "Check database.yml config"
182
164
  task :config do
183
165
  p "Checking database mysql configuration..."
184
- if config=read_database_yml[RAILS_ENV]
166
+ if config=read_database_yml[rails_env]
185
167
  case config['adapter']
186
168
  when nil
187
169
  pe "adapter entry missing."
@@ -218,8 +200,10 @@ unless Rake::Task.task_defined?("db:check:config")
218
200
  # Target directory for the application on the web and app servers.
219
201
  set(:deploy_to) { File.join("", "home", user, application) }
220
202
 
221
- # URL of your source repository. This is the default one that comes on
222
- # every Brightbox, you can use your own (we'll let you :)
203
+ # URL of your source repository. By default this will just upload
204
+ # the local directory. You should probably change this if you use
205
+ # another repository, like git or subversion.
206
+
223
207
  set :repository, "."
224
208
  set :scm, :none
225
209
  set :deploy_via, :copy
@@ -232,6 +216,10 @@ unless Rake::Task.task_defined?("db:check:config")
232
216
  # Set the commands and gems that your application requires. e.g.
233
217
  # depend :remote, :gem, "will_paginate", ">=2.2.2"
234
218
  # depend :remote, :command, "brightbox"
219
+ #
220
+ # If you're using Bundler, then you don't need to specify your
221
+ # gems here as well as there (and the bundler gem is installed for
222
+ # you automatically)
235
223
  #
236
224
  # Gem with a source (such as github)
237
225
  # depend :remote, :gem, "tmm1-amqp", ">=0.6.0", :source => "http://gems.github.com"
@@ -0,0 +1,70 @@
1
+ # Brightbox - Easy Ruby Web Application Deployment
2
+ # Copyright (C) 2010 John Leach
3
+ #
4
+ # This file is part of the Brightbox deployment system
5
+ #
6
+ # Brightbox gem is free software: you can redistribute it and/or modify it
7
+ # under the terms of the GNU Affero General Public License as published
8
+ # by the Free Software Foundation, either version 3 of the License,
9
+ # or (at your option) any later version.
10
+ #
11
+ # This program is distributed in the hope that it will be useful,
12
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
+ # Affero General Public License for more details.
15
+ #
16
+ # You should have received a copy of the GNU Affero General
17
+ # Public License along with this program. If not, see
18
+ # <http://www.gnu.org/licenses/>.
19
+ #
20
+
21
+ after "gems:install", "bundler:install"
22
+ depend :remote, :gem, "bundler", ">=1.0.0"
23
+
24
+ namespace :bundler do
25
+
26
+ _cset(:bundle_dir) { File.join(shared_path, "bundle") }
27
+ _cset(:bundle_gemfile) { File.join(latest_release, "Gemfile") }
28
+ _cset(:bundle_without, "development test")
29
+ _cset(:bundle_flags, "--deployment")
30
+ # Set :bundle_disable to true to prevent us from running bundler,
31
+ # even if we detect a Gemfile
32
+ _cset(:bundle_disable, false)
33
+ # Set :bundle_force to true to run bundler even if we can't see a
34
+ # Gemfile
35
+ _cset(:bundle_force, false)
36
+ _cset(:bundle_symlink, true)
37
+
38
+ desc "[internal]Install the bundler gem on the server"
39
+ task :install_bundler, :except => {:no_release => true} do
40
+ puts "Checking for bundler gem"
41
+ gems.install_gem("bundler", ">= 1.0.0" )
42
+ end
43
+
44
+ desc %Q{
45
+ [internal]Install the gems specified by the Gemfile or Gemfile.lock using bundler
46
+ }
47
+ task :install, :except => {:no_release => true} do
48
+ install_cmd = "(bundle install --gemfile #{bundle_gemfile} "
49
+ install_cmd << "--path #{bundle_dir} #{bundle_flags} "
50
+ install_cmd << "--without #{bundle_without} "
51
+ install_cmd << "&& ln -sf #{bundle_dir} #{File.join(latest_release, "vendor")}" if fetch(:bundle_symlink)
52
+ install_cmd << ")"
53
+ if fetch(:bundle_disable)
54
+ puts "Skipping bundler install as :bundle_enable is set to false"
55
+ elsif fetch(:bundle_force)
56
+ puts "Forcing bundler install as :bundle_force is set to true"
57
+ run install_cmd
58
+ else
59
+ run "if [ -e #{bundle_gemfile} ] ; then #{install_cmd} ; else true ; fi"
60
+ end
61
+ end
62
+
63
+ desc %Q{
64
+ [internal]Determine whether the requirements for your application are installed and available to bundler
65
+ }
66
+ task :check, :except => {:no_release => true} do
67
+ run "bundle check --gemfile #{bundle_gemfile}"
68
+ end
69
+
70
+ end
@@ -19,11 +19,14 @@
19
19
  #
20
20
  def rake_task(taskname)
21
21
  rake = fetch(:rake, "rake")
22
- rails_env = fetch(:rails_env, "production")
23
22
  rake_env = fetch(:rake_env, "")
24
- directory = current_release
23
+ in_rails_root("#{rake} #{rake_env} #{taskname}")
24
+ end
25
25
 
26
- %Q{sh -c 'cd #{directory}; #{rake} RAILS_ENV=#{rails_env} #{rake_env} #{taskname}'}
26
+ def in_rails_root(taskname)
27
+ rails_env = fetch(:rails_env, "production")
28
+ directory = current_release
29
+ %Q{sh -c 'cd #{directory}; RAILS_ENV=#{rails_env} #{taskname}'}
27
30
  end
28
31
 
29
32
  def on_one_line(cmd_list)
@@ -1,5 +1,5 @@
1
1
  module Brightbox
2
- VERSION = "2.3.6"
2
+ VERSION = "2.3.7"
3
3
  end
4
4
  # Set global scope version so that OptionParser picks it up.
5
5
  ::Version = Brightbox::VERSION
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brightbox
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.6
4
+ hash: 13
5
+ prerelease: false
6
+ segments:
7
+ - 2
8
+ - 3
9
+ - 7
10
+ version: 2.3.7
5
11
  platform: ruby
6
12
  authors:
7
13
  - John Leach
@@ -12,19 +18,24 @@ autorequire:
12
18
  bindir: bin
13
19
  cert_chain: []
14
20
 
15
- date: 2010-01-26 00:00:00 +00:00
21
+ date: 2010-09-07 00:00:00 +01:00
16
22
  default_executable:
17
23
  dependencies:
18
24
  - !ruby/object:Gem::Dependency
19
25
  name: capistrano
20
- type: :runtime
21
- version_requirement:
22
- version_requirements: !ruby/object:Gem::Requirement
26
+ prerelease: false
27
+ requirement: &id001 !ruby/object:Gem::Requirement
28
+ none: false
23
29
  requirements:
24
30
  - - ">="
25
31
  - !ruby/object:Gem::Version
32
+ hash: 9
33
+ segments:
34
+ - 2
35
+ - 5
26
36
  version: "2.5"
27
- version:
37
+ type: :runtime
38
+ version_requirements: *id001
28
39
  description:
29
40
  email: support@brightbox.co.uk
30
41
  executables:
@@ -35,25 +46,24 @@ extra_rdoc_files: []
35
46
 
36
47
  files:
37
48
  - LICENSE
38
- - Rakefile
39
- - brightbox-gemspec.rb
40
- - lib/brightbox/maintenance.rb
41
- - lib/brightbox/version.rb
42
49
  - lib/brightbox/recipes.rb
43
- - lib/brightbox/recipes/configure.rb
44
- - lib/brightbox/recipes/shared_assets.rb
45
- - lib/brightbox/recipes/helpers.rb
46
- - lib/brightbox/recipes/deploy.rb
47
- - lib/brightbox/recipes/packages.rb
50
+ - lib/brightbox/version.rb
51
+ - lib/brightbox/passenger.rb
48
52
  - lib/brightbox/recipes/variables.rb
49
- - lib/brightbox/recipes/database.rb
53
+ - lib/brightbox/recipes/helpers.rb
50
54
  - lib/brightbox/recipes/configure/mongrel.rb
51
55
  - lib/brightbox/recipes/configure/passenger.rb
56
+ - lib/brightbox/recipes/database.rb
57
+ - lib/brightbox/recipes/deploy.rb
52
58
  - lib/brightbox/recipes/deploy/mongrel.rb
53
59
  - lib/brightbox/recipes/deploy/passenger.rb
54
- - lib/brightbox/recipes/gems.rb
55
60
  - lib/brightbox/recipes/callbacks.rb
56
- - lib/brightbox/passenger.rb
61
+ - lib/brightbox/recipes/packages.rb
62
+ - lib/brightbox/recipes/gems.rb
63
+ - lib/brightbox/recipes/bundler.rb
64
+ - lib/brightbox/recipes/shared_assets.rb
65
+ - lib/brightbox/recipes/configure.rb
66
+ - lib/brightbox/maintenance.rb
57
67
  - bin/brightbox
58
68
  has_rdoc: true
59
69
  homepage: http://wiki.brightbox.co.uk/docs:gemv2:start
@@ -65,21 +75,27 @@ rdoc_options: []
65
75
  require_paths:
66
76
  - lib
67
77
  required_ruby_version: !ruby/object:Gem::Requirement
78
+ none: false
68
79
  requirements:
69
80
  - - ">="
70
81
  - !ruby/object:Gem::Version
82
+ hash: 3
83
+ segments:
84
+ - 0
71
85
  version: "0"
72
- version:
73
86
  required_rubygems_version: !ruby/object:Gem::Requirement
87
+ none: false
74
88
  requirements:
75
89
  - - ">="
76
90
  - !ruby/object:Gem::Version
91
+ hash: 3
92
+ segments:
93
+ - 0
77
94
  version: "0"
78
- version:
79
95
  requirements: []
80
96
 
81
97
  rubyforge_project: brightbox
82
- rubygems_version: 1.3.5
98
+ rubygems_version: 1.3.7
83
99
  signing_key:
84
100
  specification_version: 3
85
101
  summary: Brightbox rails deployment scripts for Capistrano
data/Rakefile DELETED
@@ -1,28 +0,0 @@
1
- require 'rake/gempackagetask'
2
- require "brightbox-gemspec.rb"
3
-
4
- namespace :client do
5
- Rake::GemPackageTask.new(@client).define
6
-
7
- task :default => [:reinstall, :clobber_package]
8
-
9
- desc "Reinstall the client gem locally"
10
- task :reinstall => [:repackage] do
11
- begin
12
- sh %Q{sudo gem uninstall -x -v #{@client.version} #{@client.name} }
13
- rescue RuntimeError => e
14
- puts "Gem not installed, continuing."
15
- end
16
-
17
- sh %Q{sudo gem install pkg/#{@client.name}-#{@client.version}.gem}
18
- end
19
-
20
- end
21
-
22
- namespace :server do
23
- Rake::GemPackageTask.new(@server).define
24
- end
25
-
26
- task :clobber_package => "client:clobber_package"
27
- task :package => ["client:package", "server:package"]
28
- task :repackage => ["client:repackage", "server:package"]
@@ -1,46 +0,0 @@
1
- # Brightbox - Easy Ruby Web Application Deployment
2
- # Copyright (C) 2008, Neil Wilson, Brightbox Systems
3
- #
4
- # This file is part of the Brightbox deployment system
5
- #
6
- # Brightbox gem is free software: you can redistribute it and/or modify it
7
- # under the terms of the GNU Affero General Public License as published
8
- # by the Free Software Foundation, either version 3 of the License,
9
- # or (at your option) any later version.
10
- #
11
- # This program is distributed in the hope that it will be useful,
12
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
13
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
- # Affero General Public License for more details.
15
- #
16
- # You should have received a copy of the GNU Affero General
17
- # Public License along with this program. If not, see
18
- # <http://www.gnu.org/licenses/>.
19
- #
20
- require File.join(File.dirname(__FILE__),"lib/brightbox/version")
21
- def add_common(spec)
22
- spec.version = Brightbox::VERSION
23
- spec.authors = ["John Leach","Neil Wilson","David Smalley", "Caius Durling"]
24
- spec.email = "support@brightbox.co.uk"
25
- spec.homepage = "http://wiki.brightbox.co.uk/docs:gemv2:start"
26
- spec.rubyforge_project = 'brightbox'
27
- spec.has_rdoc = false
28
- end
29
-
30
- @server = Gem::Specification.new do |s|
31
- add_common(s)
32
- s.name = "brightbox-server-tools"
33
- s.files = FileList["LICENSE", "Rakefile", "*.rb", "bin/railsapp-*","lib/**/*.{rb,gz}"].exclude(/recipe/).to_a
34
- s.summary = "Brightbox Server configuration scripts"
35
- s.executables = FileList["bin/railsapp-*"].sub(/bin\//,'')
36
- end
37
-
38
- @client = Gem::Specification.new do |s|
39
- add_common(s)
40
- s.name = "brightbox"
41
- s.files = FileList["LICENSE", "Rakefile", "*.rb", "lib/**/*.rb","bin/brightbox"].exclude("lib/brightbox/webserver-common.rb").to_a
42
- s.add_dependency("capistrano", ">= 2.5")
43
- s.summary = "Brightbox rails deployment scripts for Capistrano"
44
- s.executable = 'brightbox'
45
- end
46
-