golden_brindle 0.0.6 → 0.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -4,26 +4,34 @@
4
4
 
5
5
  Tool to help start/stop/restart multiple unicorn servers to use behind a web servers like nginx. This app adds an option to specify a number of Unicorn worker processes to launch, a range of ports, and a configuration file for the cluster. Use "-h" to see command syntax.
6
6
 
7
- Configure cluster and write configuration file:
7
+ Configure cluster and save configuration file to config/brindle.yml:
8
8
  golden_brindle brindle::configure
9
9
 
10
- Start cluster:
11
- golden_brindle brindle::start
10
+ You must copy this configuration file to the /etc/brindles directory to autostart on system boot.
12
11
 
13
- Restart cluster:
14
- golden_brindle brindle::restart
12
+ Start by hand to test proper start:
13
+ golden_brindle start
15
14
 
16
- Stop cluster:
17
- golden_brindle brindle::stop
15
+ Reload source code after deploy or code update:
16
+ golden_brindle restart
18
17
 
18
+ Stop:
19
+ golden_brindle stop
20
+
21
+ == Using applications with bundler
22
+
23
+ Open brindle config file for the application and set bundler option to true:
24
+ bundler: true
25
+ And update you Gemfile adding this line:
26
+ gem 'golden_brindle'
19
27
 
20
28
  == Starting clusters at boot
21
29
 
22
- 1. Create golden_brindle conf directory (/etc/brindles).
30
+ 1. Create golden_brindle configuration directory (/etc/brindles).
23
31
  2. Assign ownership to your Capistrano user.
24
- 3. Copy the init.d script from this gem's resouces directory /etc/init.d.
32
+ 3. Copy the init.d script from this gem's resouces directory to /etc/init.d.
25
33
  4. chmod +x /etc/init.d/golden_brindles_cluster
26
- 5. Add to init.d startup. On RHEL/CentOS use: /sbin/chkconfig --level 345 golden_brindles_cluster on
34
+ 5. Add to init.d startup. On RHEL/CentOS use: /sbin/chkconfig --level 345 golden_brindles on
27
35
 
28
36
  == Note on Patches/Pull Requests
29
37
 
@@ -31,13 +39,13 @@ Stop cluster:
31
39
  * Make your feature addition or bug fix.
32
40
  * Add tests for it. This is important so I don't break it in a
33
41
  future version unintentionally.
34
- * Commit, do not mess with rakefile, version, or history.
42
+ * Commit, do not mess with Rakefile, version, or history.
35
43
  (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
36
44
  * Send me a pull request. Bonus points for topic branches.
37
45
 
38
46
  == Copyright
39
47
 
40
- Copyright (c) 2010 Alexander Simonov. See LICENSE for details.
48
+ Copyright (c) 2010-2011 Alexander Simonov. See LICENSE for details.
41
49
 
42
50
  Copyright (c) 2007 Zed A. Shaw
43
51
 
data/Rakefile CHANGED
@@ -6,12 +6,11 @@ begin
6
6
  require File.dirname(__FILE__) + "/lib/golden_brindle/const.rb"
7
7
  Jeweler::Tasks.new do |gem|
8
8
  gem.name = "golden_brindle"
9
- gem.summary = %Q{Unicorn HTTP server clustering tool like mongrel_cluster for Mongrel}
10
- gem.description = %Q{Unicorn HTTP server clustering tool like mongrel_cluster for Mongrel}
9
+ gem.summary = %Q{Unicorn HTTP server multiple application runner tool}
10
+ gem.description = %Q{Unicorn HTTP server multiple application runner tool}
11
11
  gem.email = "alex@simonov.me"
12
12
  gem.homepage = "http://github.com/simonoff/golden_brindle"
13
13
  gem.authors = ["Alexander Simonov"]
14
- gem.add_development_dependency "thoughtbot-shoulda", ">= 0"
15
14
  gem.add_dependency "gem_plugin", ">= 0.2.3"
16
15
  gem.add_dependency "unicorn", ">= 1.00"
17
16
  gem.version = GoldenBrindle::Const::VERSION
@@ -1,72 +1,62 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{golden_brindle}
8
- s.version = "0.0.6"
8
+ s.version = "0.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Alexander Simonov"]
12
- s.date = %q{2010-09-05}
12
+ s.date = %q{2011-05-04}
13
13
  s.default_executable = %q{golden_brindle}
14
- s.description = %q{Unicorn HTTP server clustering tool like mongrel_cluster for Mongrel}
14
+ s.description = %q{Unicorn HTTP server multiple application runner tool}
15
15
  s.email = %q{alex@simonov.me}
16
16
  s.executables = ["golden_brindle"]
17
17
  s.extra_rdoc_files = [
18
18
  "LICENSE",
19
- "README.rdoc",
20
- "TODO"
19
+ "README.rdoc",
20
+ "TODO"
21
21
  ]
22
22
  s.files = [
23
23
  ".document",
24
- ".gitignore",
25
- "COPYING",
26
- "LICENSE",
27
- "README.rdoc",
28
- "Rakefile",
29
- "TODO",
30
- "VERSION",
31
- "bin/golden_brindle",
32
- "golden_brindle.gemspec",
33
- "lib/golden_brindle.rb",
34
- "lib/golden_brindle/cluster.rb",
35
- "lib/golden_brindle/command.rb",
36
- "lib/golden_brindle/configure.rb",
37
- "lib/golden_brindle/const.rb",
38
- "lib/golden_brindle/restart.rb",
39
- "lib/golden_brindle/start.rb",
40
- "lib/golden_brindle/stop.rb",
41
- "resources/golden_brindle_cluster",
42
- "test/helper.rb",
43
- "test/test_golden_brindle.rb"
24
+ "COPYING",
25
+ "LICENSE",
26
+ "README.rdoc",
27
+ "Rakefile",
28
+ "TODO",
29
+ "VERSION",
30
+ "bin/golden_brindle",
31
+ "golden_brindle.gemspec",
32
+ "lib/golden_brindle.rb",
33
+ "lib/golden_brindle/cluster.rb",
34
+ "lib/golden_brindle/command.rb",
35
+ "lib/golden_brindle/configure.rb",
36
+ "lib/golden_brindle/const.rb",
37
+ "lib/golden_brindle/restart.rb",
38
+ "lib/golden_brindle/start.rb",
39
+ "lib/golden_brindle/stop.rb",
40
+ "resources/golden_brindle",
41
+ "test/helper.rb",
42
+ "test/test_golden_brindle.rb"
44
43
  ]
45
44
  s.homepage = %q{http://github.com/simonoff/golden_brindle}
46
- s.rdoc_options = ["--charset=UTF-8"]
47
45
  s.require_paths = ["lib"]
48
- s.rubygems_version = %q{1.3.7}
49
- s.summary = %q{Unicorn HTTP server clustering tool like mongrel_cluster for Mongrel}
50
- s.test_files = [
51
- "test/helper.rb",
52
- "test/test_golden_brindle.rb"
53
- ]
46
+ s.rubygems_version = %q{1.6.2}
47
+ s.summary = %q{Unicorn HTTP server multiple application runner tool}
54
48
 
55
49
  if s.respond_to? :specification_version then
56
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
57
50
  s.specification_version = 3
58
51
 
59
52
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
60
- s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
61
53
  s.add_runtime_dependency(%q<gem_plugin>, [">= 0.2.3"])
62
54
  s.add_runtime_dependency(%q<unicorn>, [">= 1.00"])
63
55
  else
64
- s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
65
56
  s.add_dependency(%q<gem_plugin>, [">= 0.2.3"])
66
57
  s.add_dependency(%q<unicorn>, [">= 1.00"])
67
58
  end
68
59
  else
69
- s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
70
60
  s.add_dependency(%q<gem_plugin>, [">= 0.2.3"])
71
61
  s.add_dependency(%q<unicorn>, [">= 1.00"])
72
62
  end
@@ -68,7 +68,7 @@ module GoldenBrindle
68
68
 
69
69
  def config_keys
70
70
  @config_keys ||=
71
- %w(address host port cwd log_file pid_file environment servers daemon debug config_script workers timeout user group prefix preload listen)
71
+ %w(address host port cwd log_file pid_file environment servers daemon debug config_script workers timeout user group prefix preload listen bundler)
72
72
  end
73
73
 
74
74
  def load_config
@@ -7,6 +7,7 @@ module Brindle
7
7
  options [
8
8
  ["-e", "--environment ENV", "Rails environment to run as", :@environment, ENV['RAILS_ENV'] || "development"],
9
9
  ["-d", "--daemonize", "Run daemonized in the background", :@daemon, false],
10
+ ["-b", "--bundler", "Use bundler to start unicorn instances", :@bundler, false],
10
11
  ['', "--preload", "Preload application", :@preload, false],
11
12
  ['-p', '--port PORT', "Which port to bind to (if set numbers of servers - start port number)", :@port, Unicorn::Const::DEFAULT_PORT],
12
13
  ['-a', '--address ADDR', "Address to bind to", :@address, Unicorn::Const::DEFAULT_HOST],
@@ -3,9 +3,9 @@ module GoldenBrindle
3
3
  module Const
4
4
 
5
5
  # current version
6
- VERSION="0.0.6".freeze
6
+ VERSION="0.1"
7
7
  # main banner
8
- BANNER = "Usage: golden_brindle <command> [options]".freeze
8
+ BANNER = "Usage: golden_brindle <command> [options]"
9
9
 
10
10
  end
11
11
 
@@ -7,6 +7,7 @@ module Brindle
7
7
  def configure
8
8
  options [
9
9
  ["-e", "--environment ENV", "Rails environment to run as", :@environment, ENV['RAILS_ENV'] || "development"],
10
+ ["-b", "--bundler", "Use bundler to start unicorn instances", :@bundler, false],
10
11
  ["-d", "--daemonize", "Run daemonized in the background", :@daemon, false],
11
12
  ['', "--preload", "Preload application", :@preload, false],
12
13
  ['-p', '--port PORT', "Which port to bind to (if set numbers of servers - start port number)", :@port, Unicorn::Const::DEFAULT_PORT],
@@ -61,8 +62,6 @@ module Brindle
61
62
  abort "#$0 must be run inside RAILS_ROOT: #{err.inspect}"
62
63
  end
63
64
 
64
- require 'config/environment'
65
-
66
65
  defined?(::Rails::VERSION::STRING) or
67
66
  abort "Rails::VERSION::STRING not defined by config/{boot,environment}"
68
67
  # it seems Rails >=2.2 support Rack, but only >=2.3 requires it
@@ -115,6 +114,12 @@ module Brindle
115
114
  valid_exists?(@config_script, "Unicorn-specific config file not there: #@config_script")
116
115
  return false unless @valid
117
116
  end
117
+
118
+ if @bundler
119
+ valid_exists?('Gemfile', "Cannot use Bundler - no Gemfile in your application root dir")
120
+ return false unless @valid
121
+ end
122
+
118
123
  @cwd = File.expand_path(@cwd)
119
124
  valid_dir? @cwd, "Invalid path to change to during daemon mode: #{@cwd}"
120
125
  valid?(@prefix[0] == ?/ && @prefix[-1] != ?/, "Prefix must begin with / and not end in /") if @prefix
@@ -128,6 +133,16 @@ module Brindle
128
133
  def run
129
134
  # Change there to start, then we'll have to come back after daemonize
130
135
  Dir.chdir(@cwd)
136
+ if @bundler
137
+ puts "Using Bundler"
138
+ puts "reexec via bundle exec"
139
+ require 'pp'
140
+ cmd_for_exec = "bundle exec #{@opt.program_name}"
141
+ @original_args.each_slice(2) do |arg_key,value|
142
+ cmd_for_exec << " #{arg_key} #{value}" if arg_key != "-b"
143
+ end
144
+ exec(cmd_for_exec)
145
+ end
131
146
  options = {
132
147
  :listeners => [],
133
148
  :pid => @pid_file,
@@ -2,10 +2,10 @@
2
2
  #
3
3
  # Copyright (c) 2010 Alexander Simonov, alex@simonov.me
4
4
  #
5
- # golden_brindle_cluster Startup script for GoldenBrindle clusters.
5
+ # golden_brindle Startup script for GoldenBrindle.
6
6
  #
7
7
  # chkconfig: - 85 15
8
- # description: golden_brindle_cluster manages multiple Unicorn/GoldenBrindle processes for use \
8
+ # description: golden_brindle manages multiple Unicorn/GoldenBrindle processes for use \
9
9
  # behind a cluster.
10
10
  #
11
11
 
@@ -33,7 +33,7 @@ case "$1" in
33
33
  RETVAL=$?
34
34
  ;;
35
35
  *)
36
- echo "Usage: golden_brindle_cluster {start|stop|restart|status}"
36
+ echo "Usage: golden_brindle {start|stop|restart|status}"
37
37
  exit 1
38
38
  ;;
39
39
  esac
@@ -2,6 +2,6 @@ require 'helper'
2
2
 
3
3
  class TestGoldenBrindle < Test::Unit::TestCase
4
4
  should "probably rename this file and start testing for real" do
5
- flunk "hey buddy, you should probably rename this file and start testing for real"
5
+ #flunk "hey buddy, you should probably rename this file and start testing for real"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,13 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: golden_brindle
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 0
9
- - 6
10
- version: 0.0.6
4
+ prerelease:
5
+ version: "0.1"
11
6
  platform: ruby
12
7
  authors:
13
8
  - Alexander Simonov
@@ -15,55 +10,32 @@ autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
12
 
18
- date: 2010-09-05 00:00:00 +03:00
13
+ date: 2011-05-04 00:00:00 +03:00
19
14
  default_executable: golden_brindle
20
15
  dependencies:
21
- - !ruby/object:Gem::Dependency
22
- name: thoughtbot-shoulda
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 0
32
- version: "0"
33
- type: :development
34
- version_requirements: *id001
35
16
  - !ruby/object:Gem::Dependency
36
17
  name: gem_plugin
37
18
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
19
+ requirement: &id001 !ruby/object:Gem::Requirement
39
20
  none: false
40
21
  requirements:
41
22
  - - ">="
42
23
  - !ruby/object:Gem::Version
43
- hash: 17
44
- segments:
45
- - 0
46
- - 2
47
- - 3
48
24
  version: 0.2.3
49
25
  type: :runtime
50
- version_requirements: *id002
26
+ version_requirements: *id001
51
27
  - !ruby/object:Gem::Dependency
52
28
  name: unicorn
53
29
  prerelease: false
54
- requirement: &id003 !ruby/object:Gem::Requirement
30
+ requirement: &id002 !ruby/object:Gem::Requirement
55
31
  none: false
56
32
  requirements:
57
33
  - - ">="
58
34
  - !ruby/object:Gem::Version
59
- hash: 15
60
- segments:
61
- - 1
62
- - 0
63
35
  version: "1.00"
64
36
  type: :runtime
65
- version_requirements: *id003
66
- description: Unicorn HTTP server clustering tool like mongrel_cluster for Mongrel
37
+ version_requirements: *id002
38
+ description: Unicorn HTTP server multiple application runner tool
67
39
  email: alex@simonov.me
68
40
  executables:
69
41
  - golden_brindle
@@ -75,7 +47,6 @@ extra_rdoc_files:
75
47
  - TODO
76
48
  files:
77
49
  - .document
78
- - .gitignore
79
50
  - COPYING
80
51
  - LICENSE
81
52
  - README.rdoc
@@ -92,7 +63,7 @@ files:
92
63
  - lib/golden_brindle/restart.rb
93
64
  - lib/golden_brindle/start.rb
94
65
  - lib/golden_brindle/stop.rb
95
- - resources/golden_brindle_cluster
66
+ - resources/golden_brindle
96
67
  - test/helper.rb
97
68
  - test/test_golden_brindle.rb
98
69
  has_rdoc: true
@@ -100,8 +71,8 @@ homepage: http://github.com/simonoff/golden_brindle
100
71
  licenses: []
101
72
 
102
73
  post_install_message:
103
- rdoc_options:
104
- - --charset=UTF-8
74
+ rdoc_options: []
75
+
105
76
  require_paths:
106
77
  - lib
107
78
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -109,26 +80,19 @@ required_ruby_version: !ruby/object:Gem::Requirement
109
80
  requirements:
110
81
  - - ">="
111
82
  - !ruby/object:Gem::Version
112
- hash: 3
113
- segments:
114
- - 0
115
83
  version: "0"
116
84
  required_rubygems_version: !ruby/object:Gem::Requirement
117
85
  none: false
118
86
  requirements:
119
87
  - - ">="
120
88
  - !ruby/object:Gem::Version
121
- hash: 3
122
- segments:
123
- - 0
124
89
  version: "0"
125
90
  requirements: []
126
91
 
127
92
  rubyforge_project:
128
- rubygems_version: 1.3.7
93
+ rubygems_version: 1.6.2
129
94
  signing_key:
130
95
  specification_version: 3
131
- summary: Unicorn HTTP server clustering tool like mongrel_cluster for Mongrel
132
- test_files:
133
- - test/helper.rb
134
- - test/test_golden_brindle.rb
96
+ summary: Unicorn HTTP server multiple application runner tool
97
+ test_files: []
98
+
data/.gitignore DELETED
@@ -1,21 +0,0 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.swp
15
-
16
- ## PROJECT::GENERAL
17
- coverage
18
- rdoc
19
- pkg
20
-
21
- ## PROJECT::SPECIFIC