peony 0.1.9 → 0.3.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.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/bin/peony +2 -2
  3. data/lib/peony/actions.rb +66 -20
  4. data/lib/peony/{utils.rb → configure.rb} +13 -40
  5. data/lib/peony/default.rb +9 -2
  6. data/lib/peony/rake.rb +1 -1
  7. data/lib/peony/scope.rb +82 -0
  8. data/lib/peony/settings.rb +24 -23
  9. data/lib/peony/shell/basic.rb +19 -17
  10. data/lib/peony/shell.rb +3 -4
  11. data/lib/peony/version.rb +1 -1
  12. data/lib/peony.rb +6 -3
  13. data/recipes/db/mongo.rake +26 -26
  14. data/recipes/db/mysql.rake +46 -28
  15. data/recipes/db/pg.rake +20 -17
  16. data/recipes/db/redis.rake +22 -20
  17. data/recipes/elasticsearch.rake +14 -12
  18. data/recipes/httpd.rake +20 -18
  19. data/recipes/nginx/www.rake +8 -6
  20. data/recipes/nginx.rake +25 -23
  21. data/recipes/php.rake +10 -5
  22. data/spec/peony_spec.rb +3 -0
  23. data/spec/scope_spec.rb +48 -0
  24. data/spec/settings_in_rake_spec.rb +61 -1
  25. data/spec/settings_spec.rb +2 -2
  26. data/spec/spec_helper.rb +1 -3
  27. data/templates/elasticsearch/config.yml.erb +48 -34
  28. data/templates/elasticsearch/logging.yml.erb +3 -1
  29. data/templates/httpd/extra/httpd-autoindex.conf.erb +2 -2
  30. data/templates/httpd/extra/httpd-dav.conf.erb +4 -4
  31. data/templates/httpd/extra/httpd-mpm.conf.erb +1 -1
  32. data/templates/httpd/extra/httpd-multilang-errordoc.conf.erb +2 -2
  33. data/templates/httpd/httpd.conf.erb +8 -8
  34. data/templates/mongo/master.conf.erb +8 -8
  35. data/templates/mongo/slave.conf.erb +9 -9
  36. data/templates/mysql/my.cnf.erb +48 -34
  37. data/templates/nginx/sites-enabled/php.conf.erb +7 -7
  38. data/templates/nginx/sites-enabled/static.conf.erb +4 -4
  39. data/templates/nginx/www.conf.erb +77 -77
  40. data/templates/redis.conf.erb +13 -13
  41. metadata +6 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1492230290741387a061c5d15991153d1e34a941
4
- data.tar.gz: d4c7c7e712b4b07baade1c490b83dc82b80fcc01
3
+ metadata.gz: 75ca157cacb14e3f93c07490a459ff987702e7ae
4
+ data.tar.gz: 536925e87d651896aa033bf630680186ca7cf172
5
5
  SHA512:
6
- metadata.gz: 87525609921382cf54f35d0451da35f5d89d930d6ed64b5805458d113fac1d63338344c8b6827e4cf3c884a2d34183deba64f427c8ccc5d97dc53063ac152ca6
7
- data.tar.gz: d1a6c10b76b0e8a08ce90c9a2fea3901b81146f19e8a8b5b6746960be1e93924db2158edc02f34fc7fa3a2c791cd76566b1694bd7ada38574b6be7823f07a55d
6
+ metadata.gz: bb13520d6d2cc97c72fac43cf7cef282bd8384dfc77df789f1ab4200b3c8514b3998f595bbb3efa2c95dc4257cd0629fc7e910afe32d83697f3adc5e22d01411
7
+ data.tar.gz: e93e4fa4c5e4e6dbc02baef82e6cb5a5a1a5bc1f52bc390f11ccd5a7d4670e5f5eb8d92960b4da08328bc799788b540c2fc3cac18906d48daad5d3c4a6e8a4d7
data/bin/peony CHANGED
@@ -36,8 +36,8 @@ Rake.application.instance_eval do
36
36
  require 'peony/rake'
37
37
 
38
38
  load_rakefile
39
-
40
- Dir.glob(File.expand_path('../recipes/**/*.rake', __dir__)) do|fn|
39
+
40
+ Dir.glob(File.expand_path('../recipes/**/*.rake', __dir__)).reverse.each do|fn|
41
41
  load fn
42
42
  end
43
43
 
data/lib/peony/actions.rb CHANGED
@@ -1,31 +1,77 @@
1
1
  module Peony
2
2
  module Actions
3
3
 
4
- def destination_root
4
+ def destination_stack
5
5
  @destination_stack ||= [File.expand_path(Dir.pwd || '')]
6
- @destination_stack.last
6
+ end
7
+
8
+ def destination_root
9
+ destination_stack.last
7
10
  end
8
11
 
9
12
  # Returns the given path relative to the absolute root (ie, root where
10
13
  # the script started).
11
14
  #
12
- def relative_to_original_destination_root(path, remove_dot = true)
15
+ def original_destination_root(path, remove_dot = true)
13
16
  path = path.dup
14
- if path.gsub!(@destination_stack[0], '.')
17
+ if path.gsub!(destination_stack[0], '.')
15
18
  remove_dot ? (path[2..-1] || '') : path
16
19
  else
17
20
  path
18
21
  end
19
22
  end
20
23
 
24
+
25
+ def parse_args
26
+ ARGV.each do |arg|
27
+ set $1.strip.to_sym, $2 if arg =~ /([^=]+)=(.+)/
28
+ end
29
+ end
30
+
31
+ def template(from, to, override=false, sudo=false)
32
+ template = find_templates(from).first
33
+ raise "Can't find tempalte #{from} in directory #{template_paths}." unless template
34
+ raise "File #{to} have already exists." if !override && File.exists?(to)
35
+ say "copy #{template} to #{to}", :green
36
+
37
+ target = sudo ? "/tmp/peony-#{rand(10000)}" : to
38
+ open(target, 'w+') do |out|
39
+ out.write(erb(template))
40
+ end
41
+ sudo "mv #{tmp} #{to}" if sudo
42
+ end
43
+
44
+ # ### erb
45
+ # Evaluates an ERB block in the current scope and returns a string.
46
+ #
47
+ # a = 1
48
+ # b = 2
49
+ #
50
+ # # Assuming foo.erb is <%= a %> and <%= b %>
51
+ # puts erb('foo.erb')
52
+ #
53
+ # #=> "1 and 2"
54
+ #
55
+ # Returns the output string of the ERB template.
56
+ def erb(file, b=binding)
57
+ require 'erb'
58
+ ERB.new(File.read(file), nil, '-').result(b)
59
+ end
60
+
61
+
21
62
  def mkdir_p(*dirs)
22
- dirs.each do|dir|
63
+ dirs.each do |dir|
23
64
  say "mkdir #{dir}", :yellow, true
24
65
  FileUtils.mkdir_p(dir) if !FileTest.exists?(dir)
25
66
  fail "#{dir} must be a directory!" unless FileTest.directory?(dir)
26
67
  end
27
68
  end
28
69
 
70
+ def touch(*files)
71
+ say "touch #{files}", :yellow, true
72
+ FileUtils.touch(files)
73
+ end
74
+
29
75
  def sudo(cmd)
30
76
  run "sudo #{cmd}"
31
77
  end
@@ -88,11 +134,11 @@ module Peony
88
134
  dry_run = ENV['dry-run']
89
135
 
90
136
  say_status :inside, dir, verbose
91
- self.padding_up if verbose
92
- @destination_stack.push File.expand_path(dir, destination_root)
137
+ self.padding.up if verbose
138
+ destination_stack.push File.expand_path(dir, destination_root)
93
139
 
94
140
  # If the directory doesnt exist and we're not pretending
95
- if !File.exist?(destination_root) && !pretend
141
+ if !File.exist?(destination_root) && !dry_run
96
142
  FileUtils.mkdir_p(destination_root)
97
143
  end
98
144
 
@@ -103,17 +149,17 @@ module Peony
103
149
  FileUtils.cd(destination_root) { block.arity == 1 ? yield(destination_root) : yield }
104
150
  end
105
151
 
106
- @destination_stack.pop
107
- self.padding_down if verbose
152
+ destination_stack.pop
153
+ self.padding.down if verbose
108
154
  end
109
155
 
110
156
 
111
157
  # Goes to the root and execute the given block.
112
158
  #
113
159
  def in_root
114
- inside(@destination_stack.first) { yield }
160
+ inside(destination_stack.first) { yield }
115
161
  end
116
-
162
+
117
163
  # Loads an external file and execute it in the instance binding.
118
164
  #
119
165
  # ==== Parameters
@@ -128,22 +174,22 @@ module Peony
128
174
  #
129
175
  def apply(path, config={})
130
176
  verbose = config.fetch(:verbose, true)
131
- is_uri = path =~ /^https?\:\/\//
132
- path = find_recipes(path).first unless is_uri
177
+ is_uri = path =~ /^https?\:\/\//
178
+ path = find_recipes(path).first unless is_uri
133
179
 
134
180
  say_status :apply, path, verbose
135
- self.padding_up if verbose
181
+ self.padding.up if verbose
136
182
 
137
183
  if is_uri
138
- contents = open(path, 'Accept' => 'application/x-peony-template') {|io| io.read }
184
+ contents = open(path, 'Accept' => 'application/x-peony-template') { |io| io.read }
139
185
  else
140
- contents = open(path) {|io| io.read }
186
+ contents = open(path) { |io| io.read }
141
187
  end
142
188
 
143
189
  instance_eval(contents, path)
144
- self.padding_down if verbose
190
+ self.padding.down if verbose
145
191
  end
146
-
192
+
147
193
  # Executes a command returning the contents of the command.
148
194
  #
149
195
  # ==== Parameters
@@ -158,7 +204,7 @@ module Peony
158
204
  # end
159
205
  #
160
206
  def run(command, config={})
161
- destination = relative_to_original_destination_root(destination_root, false)
207
+ destination = original_destination_root(destination_root, false)
162
208
  desc = "#{command} from #{destination.inspect}"
163
209
 
164
210
  if config[:with]
@@ -1,38 +1,5 @@
1
1
  module Peony
2
- module Utils
3
-
4
- def parse_args
5
- ARGV.each do|arg|
6
- set $1.strip.to_sym, $2 if arg =~ /([^=]+)=(.+)/
7
- end
8
- end
9
-
10
- def template(from, to, override=false)
11
- template = find_templates(from).first
12
- raise "Can't find tempalte #{from} in directory #{search_paths}." unless template
13
- raise "File #{to} have already exists." if !override && File.exists?(to)
14
- say "copy #{template} to #{to}", :green
15
- open(to, "w+") do|out|
16
- out.write(erb(template))
17
- end
18
- end
19
-
20
- # ### erb
21
- # Evaluates an ERB block in the current scope and returns a string.
22
- #
23
- # a = 1
24
- # b = 2
25
- #
26
- # # Assuming foo.erb is <%= a %> and <%= b %>
27
- # puts erb('foo.erb')
28
- #
29
- # #=> "1 and 2"
30
- #
31
- # Returns the output string of the ERB template.
32
- def erb(file, b=binding)
33
- require 'erb'
34
- ERB.new(File.read(file), nil, '-').result(b)
35
- end
2
+ module Configure
36
3
 
37
4
  # ### set
38
5
  # Sets settings.
@@ -42,7 +9,7 @@ module Peony
42
9
  #
43
10
  # set :domain, 'kickflip.me'
44
11
  def set(key, *args, &block)
45
- settings.send :"#{key}=", *args, block
12
+ settings.send :"#{key}=", *args, &block
46
13
  end
47
14
 
48
15
  # ### set_default
@@ -59,7 +26,7 @@ module Peony
59
26
  # set_default :term_mode, :pretty
60
27
  # settings.term_mode.should == :system
61
28
  def set_default(key, *args, &block)
62
- set(key, *args, block) unless settings.send(:"#{key}?")
29
+ set(key, *args, block) unless settings.send(:local?, key.to_sym)
63
30
  end
64
31
 
65
32
  # ### settings
@@ -73,6 +40,12 @@ module Peony
73
40
  @settings ||= Settings.new
74
41
  end
75
42
 
43
+ def scope(name)
44
+ settings.with_scope(name.to_sym) do
45
+ yield
46
+ end
47
+ end
48
+
76
49
  def template_paths
77
50
  ["#{Dir.pwd}/templates", File.expand_path('../../templates', __dir__)]
78
51
  end
@@ -92,7 +65,7 @@ module Peony
92
65
  def find_in_directories(paths, name, file_only)
93
66
  templates = []
94
67
  paths.each do|path|
95
- templates += Dir[File.expand_path(name, path)].reject{|filename| file_only && File.directory?(filename) }
68
+ templates += Dir[File.expand_path(name, path)].reject{|filename| file_only && File.directory?(filename)}
96
69
  end
97
70
  templates
98
71
  end
@@ -103,9 +76,9 @@ module Peony
103
76
  # See #settings for an explanation.
104
77
  #
105
78
  # Returns things.
106
- def method_missing(meth, *args, &blk)
107
- if settings.include? meth
108
- settings.send meth, *args, &blk
79
+ def method_missing(method, *args, &blk)
80
+ if settings.respond_to? method, true
81
+ settings.__send__(method, *args, &blk)
109
82
  else
110
83
  super
111
84
  end
data/lib/peony/default.rb CHANGED
@@ -14,8 +14,15 @@ set_default :group, 'admin'
14
14
  namespace :settings do
15
15
  desc 'List all the settings.'
16
16
  task :list do
17
- settings.each do|k, v|
18
- say "#{k} = #{settings.send(k)}", :green, true
17
+ settings.scopes.each do|name, scope|
18
+ say "scope: #{name}", :yellow
19
+ settings.with(scope) do
20
+ scope.each do|k, _|
21
+ with_padding do
22
+ say "#{k} = #{settings.send(k)}", :green, true
23
+ end
24
+ end
25
+ end
19
26
  end
20
27
  end
21
28
  end
data/lib/peony/rake.rb CHANGED
@@ -1,4 +1,4 @@
1
- extend Peony::Utils
1
+ extend Peony::Configure
2
2
  extend Peony::Shell
3
3
  extend Peony::Actions
4
4
 
@@ -0,0 +1,82 @@
1
+ module Peony
2
+ class Scope < Hash
3
+ attr_reader :name
4
+
5
+ def initialize(name = nil, parent = nil)
6
+ @name = name
7
+ @parent = parent
8
+ yield name, self if block_given?
9
+ end
10
+
11
+ alias_method :local?, :has_key?
12
+
13
+ def [](key)
14
+ super || (@parent && @parent[key])
15
+ end
16
+
17
+ ## also change the method key?, include?, member?
18
+ #
19
+ def has_key?(key)
20
+ local?(key) || (!@parent.nil? && @parent.key?(key))
21
+ end
22
+
23
+ def []=(key, value)
24
+ if !local?(key) && @parent && @parent.has_key?(key)
25
+ @parent.set key, value
26
+ else
27
+ store(key, value)
28
+ end
29
+ end
30
+
31
+ def remove(key, recursively = false)
32
+ delete(key)
33
+ if recursively && @parent
34
+ @parent.remove(key, recursively)
35
+ end
36
+ self
37
+ end
38
+
39
+ def respond_to_missing?(method, _ = true)
40
+ self.include?(method) || method.to_s =~ /[a-z]\w*[?=!]?$/
41
+ end
42
+
43
+ alias_method :set, :[]=
44
+ alias_method :local, :store
45
+
46
+ alias_method :include?, :has_key?
47
+ alias_method :key?, :has_key?
48
+ alias_method :member?, :has_key?
49
+
50
+
51
+ def method_missing(method, *args, &block)
52
+ return evaluate(self.[](method), &block) if has_key?(method)
53
+ match = method.to_s.match(/(.*?)([?=!]?)$/)
54
+ case match[2]
55
+ when '='
56
+ #self[match[1].to_sym] = args.first || block
57
+ local(match[1].to_sym, args.first || block)
58
+ when '?'
59
+ !!self[match[1].to_sym]
60
+ when '!'
61
+ evaluate(fetch(match[1].to_sym), &block) #just fetch local key
62
+ else
63
+ evaluate(self[match[1]], &block) #support string key
64
+ end
65
+ end
66
+
67
+ def evaluate(value)
68
+ ret = value.is_a?(Proc) ? value.call : value
69
+ ret.nil? && block_given? ? yield : ret
70
+ end
71
+
72
+ def new_scope(name)
73
+ clazz = self.class
74
+ self.send(name) || Scope.new(name, self) do|_name, _scope|
75
+ clazz.send :define_method, _name do
76
+ _scope
77
+ end
78
+ end
79
+ end
80
+
81
+ end
82
+ end
@@ -1,31 +1,32 @@
1
1
  module Peony
2
- class Settings < Hash
3
- def method_missing(method, *args, &block)
4
- name = method.to_s
5
- key, punct = name[0..-2].to_sym, name[-1..-1]
6
- case punct
7
- when '='
8
- self[key] = args.first != nil ? args.first : block
9
- when '?'
10
- include? key
11
- when '!'
12
- raise Error, "Setting :#{key} is not set" unless include?(key)
13
- evaluate self[key]
14
- else
15
- if include? method
16
- evaluate self[method]
17
- else
18
- block.call unless block.nil?
19
- end
2
+ class Settings
3
+ attr_reader :current_scope, :root_scope
4
+
5
+ def initialize
6
+ @current_scope = @root_scope = Scope.new(:root)
7
+ end
8
+
9
+ def with_scope(name)
10
+ original_scope = current_scope
11
+ begin
12
+ @current_scope = original_scope.new_scope(name)
13
+ yield
14
+ ensure
15
+ @current_scope = original_scope
20
16
  end
21
17
  end
22
18
 
23
- def evaluate(value)
24
- if value.is_a?(Proc)
25
- value.call
19
+ def method_missing(method, *args, &block)
20
+ if current_scope.respond_to?(method, false)
21
+ current_scope.__send__(method, *args, &block)
26
22
  else
27
- value
23
+ super
28
24
  end
29
25
  end
26
+
27
+ def respond_to_missing?(method, include_all = true)
28
+ current_scope.respond_to?(method, include_all)
29
+ end
30
+
30
31
  end
31
- end
32
+ end
@@ -10,7 +10,7 @@ module Peony
10
10
  # Initialize base, mute and padding to nil.
11
11
  #
12
12
  def initialize #:nodoc:
13
- @base, @mute, @padding, @always_force = nil, false, 0, false
13
+ @base, @mute, @padding, @always_force = nil, false, Padding.new, false
14
14
  end
15
15
 
16
16
  # Mute everything that's inside given block
@@ -28,20 +28,6 @@ module Peony
28
28
  @mute
29
29
  end
30
30
 
31
- # Sets the output padding, not allowing less than zero values.
32
- #
33
- def padding_to(value)
34
- @padding = [0, value].max
35
- end
36
-
37
- def padding_up
38
- @padding += 1
39
- end
40
-
41
- def padding_down
42
- @padding += 1
43
- end
44
-
45
31
  # Asks something to the user and receives a response.
46
32
  #
47
33
  # If asked to limit the correct responses, you can pass in an
@@ -99,7 +85,7 @@ module Peony
99
85
  #
100
86
  def say_status(status, message, log_status = true)
101
87
  return if quiet? || log_status == false
102
- spaces = ' ' * (padding + 1)
88
+ spaces = ' ' * (padding.value + 1)
103
89
  color = log_status.is_a?(Symbol) ? log_status : :green
104
90
 
105
91
  status = status.to_s.rjust(12)
@@ -299,7 +285,7 @@ module Peony
299
285
  protected
300
286
 
301
287
  def prepare_message(message, *color)
302
- spaces = ' ' * padding
288
+ spaces = ' ' * padding.value
303
289
  spaces + set_color(message.to_s, *color)
304
290
  end
305
291
 
@@ -425,5 +411,21 @@ module Peony
425
411
  correct_answer
426
412
  end
427
413
  end
414
+
415
+ class Padding
416
+ attr_accessor :value
417
+
418
+ def initialize
419
+ @value = 0
420
+ end
421
+
422
+ def up
423
+ @value += 1
424
+ end
425
+
426
+ def down
427
+ @value -= 1
428
+ end
429
+ end
428
430
  end
429
431
  end
data/lib/peony/shell.rb CHANGED
@@ -1,8 +1,7 @@
1
1
  module Peony
2
2
  module Shell
3
3
  SHELL_DELEGATED_METHODS = [:ask, :error, :set_color, :yes?, :no?, :say, :say_status, :print_in_columns,
4
- :print_table, :print_wrapped, :file_collision, :terminal_width, :padding,
5
- :padding_to, :padding_up, :padding_down]
4
+ :print_table, :print_wrapped, :file_collision, :terminal_width, :padding]
6
5
 
7
6
  # The following classes's code was copied from Thor, available under MIT-LICENSE
8
7
  # Copyright (c) 2008 Yehuda Katz, Eric Hodel, et al.
@@ -34,10 +33,10 @@ module Peony
34
33
 
35
34
  # Yields the given block with padding.
36
35
  def with_padding
37
- shell.padding_up
36
+ self.padding.up
38
37
  yield
39
38
  ensure
40
- shell.padding_down
39
+ self.padding.down
41
40
  end
42
41
 
43
42
  end
data/lib/peony/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Peony
2
- VERSION = '0.1.9'
2
+ VERSION = '0.3.0'
3
3
  end
data/lib/peony.rb CHANGED
@@ -5,11 +5,14 @@ module Peony
5
5
  PREFIX = File.dirname(__FILE__)
6
6
  ROOT = File.expand_path('../../', __FILE__)
7
7
 
8
- autoload :Utils, 'peony/utils'
8
+ autoload :Scope, 'peony/scope'
9
+ autoload :Settings, 'peony/settings'
10
+ autoload :Configure, 'peony/configure'
11
+
9
12
  autoload :Shell, 'peony/shell'
10
- autoload :Actions, 'peony/actions'
11
13
  autoload :LineEditor, 'peony/line_editor'
12
- autoload :Settings, 'peony/settings'
14
+ autoload :Actions, 'peony/actions'
15
+
13
16
 
14
17
  Error = Class.new(Exception)
15
18
 
@@ -1,30 +1,30 @@
1
- set_default :mongod, '/usr/local/bin/mongod'
1
+ scope :mongo do
2
+ set_default :mongod, '/usr/local/bin/mongod'
3
+ set_default :master_name, 'master'
4
+ set_default :slave_name, 'slave'
2
5
 
3
- set_default :mongo_master_name, 'master'
4
- set_default :mongo_slave_name, 'slave'
6
+ set_default :master_dir, ->{ "#{data_dir}/mongo/#{mongo.master_name}" }
7
+ set_default :slave_dir, ->{ "#{data_dir}/mongo/#{mongo.slave_name}" }
8
+ set_default :etc_dir, ->{ "#{etc_dir}/mongo" }
9
+ set_default :log_dir, ->{ "#{log_dir}/mongo" }
10
+ set_default :run_dir, ->{ "#{run_dir}/mongo" }
5
11
 
6
- set_default :mongo_master_dir, ->{ "#{data_dir}/mongo/#{mongo_master_name}" }
7
- set_default :mongo_slave_dir, ->{ "#{data_dir}/mongo/#{mongo_slave_name}" }
8
- set_default :mongo_etc_dir, ->{ "#{etc_dir}/mongo" }
9
- set_default :mongo_log_dir, ->{ "#{log_dir}/mongo" }
10
- set_default :mongo_run_dir, ->{ "#{run_dir}/mongo" }
12
+ set_default :fork, true
13
+ set_default :jsonp, true
14
+ set_default :rest, true
11
15
 
16
+ set_default :master_port, 27017
17
+ set_default :slave_port, 27018
18
+ set_default :slave_source, ->{ "127.0.0.1:#{mongo.master_port}" }
12
19
 
13
- set_default :mongo_fork , true
14
- set_default :mongo_jsonp, true
15
- set_default :mongo_rest , true
20
+ set_default :master_conf, ->{ "#{mongo.etc_dir}/#{mongo.master_name}.conf" }
21
+ set_default :slave_conf, ->{ "#{mongo.etc_dir}/#{mongo.slave_name}.conf" }
16
22
 
17
- set_default :mongo_master_port, 27017
18
- set_default :mongo_slave_port, 27018
19
- set_default :mongo_slave_source, ->{ "127.0.0.1:#{mongo_master_port}" }
20
-
21
- set_default :mongo_master_conf, ->{ "#{mongo_etc_dir}/#{mongo_master_name}.conf" }
22
- set_default :mongo_slave_conf, ->{ "#{mongo_etc_dir}/#{mongo_slave_name}.conf" }
23
-
24
- set_default :mongo_master_start, ->{ "#{mongod} --config #{mongo_master_conf}" }
25
- set_default :mongo_slave_start, ->{ "#{mongod} --config #{mongo_slave_conf}" }
26
- set_default :mongo_master_stop, ->{ "kill -2 `cat #{mongo_run_dir}/#{mongo_master_name}.pid`" }
27
- set_default :mongo_slave_stop, ->{ "kill -2 `cat #{mongo_run_dir}/#{mongo_slave_name}.pid`" }
23
+ set_default :master_start, ->{ "#{mongo.mongod} --config #{mongo.master_conf}" }
24
+ set_default :slave_start, ->{ "#{mongo.mongod} --config #{mongo.slave_conf}" }
25
+ set_default :master_stop, ->{ "kill -2 `cat #{mongo.run_dir}/#{mongo.master_name}.pid`" }
26
+ set_default :slave_stop, ->{ "kill -2 `cat #{mongo.run_dir}/#{mongo.slave_name}.pid`" }
27
+ end
28
28
 
29
29
 
30
30
  namespace :db do
@@ -32,9 +32,9 @@ namespace :db do
32
32
 
33
33
  desc 'Create the directory for mongodb, and copy mongo config file to etc directory.'
34
34
  task :init do
35
- mkdir_p(mongo_master_dir, mongo_slave_dir, mongo_etc_dir, mongo_log_dir, mongo_run_dir)
36
- template('mongo/master.conf.erb', mongo_master_conf, true)
37
- template('mongo/slave.conf.erb', mongo_slave_conf, true)
35
+ mkdir_p(mongo.master_dir, mongo.slave_dir, mongo.etc_dir, mongo.log_dir, mongo.run_dir)
36
+ template('mongo/master.conf.erb', mongo.master_conf, true)
37
+ template('mongo/slave.conf.erb', mongo.slave_conf, true)
38
38
  end
39
39
 
40
40
  [:master, :slave].each do|ns|
@@ -42,7 +42,7 @@ namespace :db do
42
42
  [:start, :stop].each do|t|
43
43
  desc "#{t} mongodb #{ns}"
44
44
  task t do
45
- run self.send("mongo_#{ns}_#{t}")
45
+ run mongo.send("#{ns}_#{t}")
46
46
  end
47
47
  end
48
48
  end