peony 0.1.6 → 0.1.8
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.
- checksums.yaml +4 -4
- data/README.md +20 -2
- data/Rakefile +1 -1
- data/bin/peony +7 -3
- data/lib/peony/actions.rb +178 -0
- data/lib/peony/application.rb +5 -2
- data/lib/peony/default.rb +13 -13
- data/lib/peony/line_editor/basic.rb +35 -0
- data/lib/peony/line_editor/readline.rb +88 -0
- data/lib/peony/line_editor.rb +16 -0
- data/lib/peony/rake.rb +3 -1
- data/lib/peony/shell/basic.rb +429 -0
- data/lib/peony/shell/color.rb +149 -0
- data/lib/peony/shell/html.rb +126 -0
- data/lib/peony/shell.rb +46 -0
- data/lib/peony/utils.rb +22 -100
- data/lib/peony/version.rb +1 -1
- data/lib/peony.rb +7 -5
- data/peony.gemspec +9 -9
- data/recipes/db/mongo.rake +23 -23
- data/recipes/db/mysql.rake +19 -19
- data/recipes/db/pg.rake +13 -13
- data/recipes/db/redis.rake +19 -19
- data/recipes/elasticsearch.rake +10 -10
- data/recipes/httpd.rake +15 -15
- data/recipes/nginx/www.rake +5 -5
- data/recipes/nginx.rake +10 -10
- data/recipes/php.rake +6 -6
- data/spec/peony_spec.rb +45 -0
- data/spec/settings_in_rake_spec.rb +12 -12
- data/spec/settings_spec.rb +3 -3
- data/spec/spec_helper.rb +5 -5
- metadata +29 -20
data/lib/peony/shell.rb
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
module Peony
|
2
|
+
module Shell
|
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]
|
6
|
+
|
7
|
+
# The following classes's code was copied from Thor, available under MIT-LICENSE
|
8
|
+
# Copyright (c) 2008 Yehuda Katz, Eric Hodel, et al.
|
9
|
+
autoload :Basic, 'peony/shell/basic'
|
10
|
+
autoload :Color, 'peony/shell/color'
|
11
|
+
autoload :HTML, 'peony/shell/html'
|
12
|
+
|
13
|
+
|
14
|
+
# Holds the shell for the given Thor instance. If no shell is given,
|
15
|
+
# it gets a default shell from Thor::Base.shell.
|
16
|
+
def shell
|
17
|
+
@shell ||= if ENV['PEONY_SHELL'] && ENV['PEONY_SHELL'].size > 0
|
18
|
+
Peony::Shell.const_get(ENV['PEONY_SHELL']).new
|
19
|
+
elsif (RbConfig::CONFIG['host_os'] =~ /mswin|mingw/) && !(ENV['ANSICON'])
|
20
|
+
Peony::Shell::Basic.new
|
21
|
+
else
|
22
|
+
Peony::Shell::Color.new
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
# Common methods that are delegated to the shell.
|
27
|
+
SHELL_DELEGATED_METHODS.each do |method|
|
28
|
+
module_eval <<-METHOD, __FILE__, __LINE__
|
29
|
+
def #{method}(*args, &block)
|
30
|
+
shell.#{method}(*args, &block)
|
31
|
+
end
|
32
|
+
METHOD
|
33
|
+
end
|
34
|
+
|
35
|
+
# Yields the given block with padding.
|
36
|
+
def with_padding
|
37
|
+
shell.padding_up
|
38
|
+
yield
|
39
|
+
ensure
|
40
|
+
shell.padding_down
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
|
data/lib/peony/utils.rb
CHANGED
@@ -6,51 +6,12 @@ module Peony
|
|
6
6
|
set $1.strip.to_sym, $2 if arg =~ /([^=]+)=(.+)/
|
7
7
|
end
|
8
8
|
end
|
9
|
-
|
10
|
-
def sudo(cmd, &block)
|
11
|
-
run "sudo #{cmd}", &block
|
12
|
-
end
|
13
|
-
|
14
|
-
def run(cmd)
|
15
|
-
sh cmd do|res, stat|
|
16
|
-
if block_given?
|
17
|
-
yield res, stat
|
18
|
-
else
|
19
|
-
puts stat.inspect unless res
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def mkdir_p(*dirs)
|
25
|
-
dirs.each do|dir|
|
26
|
-
if !FileTest.exists?(dir)
|
27
|
-
FileUtils.mkdir_p(dir)
|
28
|
-
end
|
29
|
-
fail "#{dir} must be a directory!" unless FileTest.directory?(dir)
|
30
|
-
end
|
31
|
-
end
|
32
9
|
|
33
|
-
# ### invoke
|
34
|
-
# Invokes another Rake task.
|
35
|
-
#
|
36
|
-
# Invokes the task given in `task`. Returns nothing.
|
37
|
-
#
|
38
|
-
# invoke :'git:clone'
|
39
|
-
# invoke :restart
|
40
|
-
#
|
41
|
-
# Options:
|
42
|
-
# reenable (bool) - Execute the task even next time.
|
43
|
-
#
|
44
|
-
def invoke(task, options = {})
|
45
|
-
Rake.application.invoke_task task
|
46
|
-
Rake::Task[task].reenable if options[:reenable]
|
47
|
-
end
|
48
|
-
|
49
10
|
def template(from, to, override=false)
|
50
11
|
template = find_templates(from).first
|
51
12
|
raise "Can't find tempalte #{from} in directory #{search_paths}." unless template
|
52
13
|
raise "File #{to} have already exists." if !override && File.exists?(to)
|
53
|
-
|
14
|
+
say "copy #{template} to #{to}", :green
|
54
15
|
open(to, "w+") do|out|
|
55
16
|
out.write(erb(template))
|
56
17
|
end
|
@@ -70,61 +31,9 @@ module Peony
|
|
70
31
|
# Returns the output string of the ERB template.
|
71
32
|
def erb(file, b=binding)
|
72
33
|
require 'erb'
|
73
|
-
ERB.new(File.read(file), nil,
|
74
|
-
end
|
75
|
-
|
76
|
-
# ### report_time
|
77
|
-
# Report time elapsed in the block.
|
78
|
-
# Returns the output of the block.
|
79
|
-
#
|
80
|
-
# report_time do
|
81
|
-
# sleep 2
|
82
|
-
# # do other things
|
83
|
-
# end
|
84
|
-
#
|
85
|
-
# # Output:
|
86
|
-
# # Elapsed time: 2.00 seconds
|
87
|
-
def report_time(&blk)
|
88
|
-
time, output = measure &blk
|
89
|
-
print_str "Elapsed time: %.2f seconds" % [time]
|
90
|
-
output
|
91
|
-
end
|
92
|
-
|
93
|
-
# ### measure
|
94
|
-
# Measures the time (in seconds) a block takes.
|
95
|
-
# Returns a [time, output] tuple.
|
96
|
-
def measure(&blk)
|
97
|
-
t = Time.now
|
98
|
-
output = yield
|
99
|
-
[Time.now - t, output]
|
100
|
-
end
|
101
|
-
|
102
|
-
# ### error
|
103
|
-
# __Internal:__ Prints to stdout.
|
104
|
-
# Consider using `print_error` instead.
|
105
|
-
def error(str)
|
106
|
-
$stderr.write "#{str}\n"
|
34
|
+
ERB.new(File.read(file), nil, '-').result(b)
|
107
35
|
end
|
108
36
|
|
109
|
-
# ### echo_cmd
|
110
|
-
# Converts a bash command to a command that echoes before execution.
|
111
|
-
# Used to show commands in verbose mode. This does nothing unless verbose mode is on.
|
112
|
-
#
|
113
|
-
# Returns a string of the compound bash command, typically in the format of
|
114
|
-
# `echo xx && xx`. However, if `verbose_mode?` is false, it returns the
|
115
|
-
# input string unharmed.
|
116
|
-
#
|
117
|
-
# echo_cmd("ln -nfs releases/2 current")
|
118
|
-
# #=> echo "$ ln -nfs releases/2 current" && ln -nfs releases/2 current
|
119
|
-
def echo_cmd(str)
|
120
|
-
if verbose_mode?
|
121
|
-
require 'shellwords'
|
122
|
-
"echo #{Shellwords.escape("$ " + str)} &&\n#{str}"
|
123
|
-
else
|
124
|
-
str
|
125
|
-
end
|
126
|
-
end
|
127
|
-
|
128
37
|
# ### set
|
129
38
|
# Sets settings.
|
130
39
|
# Sets given symbol `key` to value in `value`.
|
@@ -162,20 +71,33 @@ module Peony
|
|
162
71
|
# domain #=> 'kickflip.me'
|
163
72
|
def settings
|
164
73
|
@settings ||= Settings.new
|
165
|
-
end
|
166
|
-
|
167
|
-
def
|
168
|
-
["#{Dir.pwd}/templates", File.expand_path(
|
169
|
-
end
|
170
|
-
|
74
|
+
end
|
75
|
+
|
76
|
+
def template_paths
|
77
|
+
["#{Dir.pwd}/templates", File.expand_path('../../templates', __dir__)]
|
78
|
+
end
|
79
|
+
|
171
80
|
def find_templates(name, file_only=true)
|
81
|
+
find_in_directories(template_paths, name, file_only)
|
82
|
+
end
|
83
|
+
|
84
|
+
def recipes_paths
|
85
|
+
["#{Dir.pwd}/recipes", File.expand_path('../../recipes', __dir__)]
|
86
|
+
end
|
87
|
+
|
88
|
+
def find_recipes(name, file_only=true)
|
89
|
+
find_in_directories(recipes_paths, name, file_only)
|
90
|
+
end
|
91
|
+
|
92
|
+
def find_in_directories(paths, name, file_only)
|
172
93
|
templates = []
|
173
|
-
|
94
|
+
paths.each do|path|
|
174
95
|
templates += Dir[File.expand_path(name, path)].reject{|filename| file_only && File.directory?(filename) }
|
175
96
|
end
|
176
97
|
templates
|
177
98
|
end
|
178
99
|
|
100
|
+
|
179
101
|
# ### method_missing
|
180
102
|
# Hook to get settings.
|
181
103
|
# See #settings for an explanation.
|
data/lib/peony/version.rb
CHANGED
data/lib/peony.rb
CHANGED
@@ -1,13 +1,15 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require 'peony/version'
|
2
|
+
require 'peony/application'
|
3
3
|
|
4
4
|
module Peony
|
5
5
|
PREFIX = File.dirname(__FILE__)
|
6
6
|
ROOT = File.expand_path('../../', __FILE__)
|
7
7
|
|
8
|
-
autoload :Utils,
|
9
|
-
autoload :
|
10
|
-
|
8
|
+
autoload :Utils, 'peony/utils'
|
9
|
+
autoload :Shell, 'peony/shell'
|
10
|
+
autoload :Actions, 'peony/actions'
|
11
|
+
autoload :LineEditor, 'peony/line_editor'
|
12
|
+
autoload :Settings, 'peony/settings'
|
11
13
|
|
12
14
|
Error = Class.new(Exception)
|
13
15
|
|
data/peony.gemspec
CHANGED
@@ -4,21 +4,21 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
require 'peony/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
7
|
+
spec.name = 'peony'
|
8
8
|
spec.version = Peony::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
9
|
+
spec.authors = ['James Zhan']
|
10
|
+
spec.email = ['zhiqiangzhan@gmail.com']
|
11
11
|
spec.description = %q{Local Script Management System Using Rake}
|
12
12
|
spec.summary = %q{Local Script Management System Using Rake.}
|
13
|
-
spec.homepage =
|
14
|
-
spec.license =
|
13
|
+
spec.homepage = 'https://github.com/jameszhan/peony'
|
14
|
+
spec.license = 'MIT'
|
15
15
|
|
16
16
|
spec.files = `git ls-files`.split($/)
|
17
17
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
-
spec.require_paths = [
|
19
|
+
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.add_dependency
|
22
|
-
spec.add_development_dependency
|
23
|
-
spec.add_development_dependency
|
21
|
+
spec.add_dependency 'rake', '~> 10.1'
|
22
|
+
spec.add_development_dependency 'bundler', '~> 1.5'
|
23
|
+
spec.add_development_dependency 'rspec', '~> 2'
|
24
24
|
end
|
data/recipes/db/mongo.rake
CHANGED
@@ -1,13 +1,13 @@
|
|
1
|
-
set_default :mongod,
|
1
|
+
set_default :mongod, '/usr/local/bin/mongod'
|
2
2
|
|
3
|
-
set_default :mongo_master_name,
|
4
|
-
set_default :mongo_slave_name,
|
3
|
+
set_default :mongo_master_name, 'master'
|
4
|
+
set_default :mongo_slave_name, 'slave'
|
5
5
|
|
6
|
-
set_default :mongo_master_dir,
|
7
|
-
set_default :mongo_slave_dir,
|
8
|
-
set_default :mongo_etc_dir,
|
9
|
-
set_default :mongo_log_dir,
|
10
|
-
set_default :mongo_run_dir,
|
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" }
|
11
11
|
|
12
12
|
|
13
13
|
set_default :mongo_fork , true
|
@@ -15,26 +15,26 @@ set_default :mongo_jsonp, true
|
|
15
15
|
set_default :mongo_rest , true
|
16
16
|
|
17
17
|
set_default :mongo_master_port, 27017
|
18
|
-
set_default :mongo_slave_port,
|
19
|
-
set_default :mongo_slave_source,
|
18
|
+
set_default :mongo_slave_port, 27018
|
19
|
+
set_default :mongo_slave_source, ->{ "127.0.0.1:#{mongo_master_port}" }
|
20
20
|
|
21
|
-
set_default :mongo_master_conf,
|
22
|
-
set_default :mongo_slave_conf,
|
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
23
|
|
24
|
-
set_default :mongo_master_start,
|
25
|
-
set_default :mongo_slave_start,
|
26
|
-
set_default :mongo_master_stop,
|
27
|
-
set_default :mongo_slave_stop,
|
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`" }
|
28
28
|
|
29
29
|
|
30
30
|
namespace :db do
|
31
31
|
namespace :mongo do
|
32
32
|
|
33
|
-
desc
|
33
|
+
desc 'Create the directory for mongodb, and copy mongo config file to etc directory.'
|
34
34
|
task :init do
|
35
35
|
mkdir_p(mongo_master_dir, mongo_slave_dir, mongo_etc_dir, mongo_log_dir, mongo_run_dir)
|
36
|
-
template(
|
37
|
-
template(
|
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|
|
@@ -48,12 +48,12 @@ namespace :db do
|
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
51
|
-
desc
|
52
|
-
task :start =>
|
51
|
+
desc 'Start the master mongodb instance'
|
52
|
+
task :start => 'master:start' do
|
53
53
|
end
|
54
54
|
|
55
|
-
desc
|
56
|
-
task :stop =>
|
55
|
+
desc 'Stop the master mongodb instance'
|
56
|
+
task :stop => 'master:stop' do
|
57
57
|
end
|
58
58
|
end
|
59
59
|
end
|
data/recipes/db/mysql.rake
CHANGED
@@ -1,34 +1,34 @@
|
|
1
|
-
set_default :mysql_home,
|
2
|
-
set_default :mysqld,
|
3
|
-
set_default :mysqladmin,
|
4
|
-
set_default :mysql_install_db,
|
1
|
+
set_default :mysql_home, `brew --prefix mysql`.strip
|
2
|
+
set_default :mysqld, '/usr/local/bin/mysqld_safe'
|
3
|
+
set_default :mysqladmin, '/usr/local/bin/mysqladmin'
|
4
|
+
set_default :mysql_install_db, '/usr/local/bin/mysql_install_db'
|
5
5
|
|
6
|
-
set_default :mysql_dir,
|
7
|
-
set_default :mysql_log_dir,
|
8
|
-
set_default :mysql_conf,
|
6
|
+
set_default :mysql_dir, ->{ "#{data_dir}/mysql/#{mysql_port}" }
|
7
|
+
set_default :mysql_log_dir, ->{ "#{log_dir}/mysql/#{mysql_port}" }
|
8
|
+
set_default :mysql_conf, ->{ "#{etc_dir}/my.cnf" }
|
9
9
|
|
10
|
-
set_default :mysql_user,
|
11
|
-
set_default :mysql_password,
|
10
|
+
set_default :mysql_user, 'root'
|
11
|
+
set_default :mysql_password, '123456'
|
12
12
|
|
13
|
-
set_default :mysql_pid_file,
|
14
|
-
set_default :mysql_port,
|
15
|
-
set_default :mysql_socket,
|
16
|
-
set_default :mysql_charset,
|
13
|
+
set_default :mysql_pid_file, ->{ "#{run_dir}/mysql/#{mysql_port}.pid" }
|
14
|
+
set_default :mysql_port, '3306'
|
15
|
+
set_default :mysql_socket, '/tmp/mysql.sock'
|
16
|
+
set_default :mysql_charset, 'UTF8'
|
17
17
|
set_default :mysql_general_log, 'ON'
|
18
18
|
set_default :mysql_slow_query_log, 'ON'
|
19
19
|
|
20
|
-
set_default :mysql_start,
|
21
|
-
set_default :mysql_stop,
|
22
|
-
set_default :mysql_status,
|
20
|
+
set_default :mysql_start, ->{ "#{mysqld} --defaults-file=#{mysql_conf} --datadir=#{mysql_dir} --basedir=#{mysql_home} &" }
|
21
|
+
set_default :mysql_stop, ->{ "#{mysqladmin} --verbose --user=#{mysql_user} --password=#{mysql_password} shutdown" }
|
22
|
+
set_default :mysql_status, ->{ "#{mysqladmin} --verbose status variables" }
|
23
23
|
|
24
24
|
namespace :db do
|
25
25
|
|
26
26
|
namespace :mysql do
|
27
27
|
|
28
|
-
desc
|
28
|
+
desc 'Create mysql directorys, config file and run mysql_install_db'
|
29
29
|
task :init do
|
30
30
|
mkdir_p(mysql_dir, mysql_log_dir, "#{run_dir}/mysql/")
|
31
|
-
template(
|
31
|
+
template('mysql/my.cnf.erb', mysql_conf, true)
|
32
32
|
run "#{mysql_install_db} --defaults-file=#{mysql_conf} --datadir=#{mysql_dir} --basedir=#{mysql_home}" if Dir["#{mysql_dir}/*"].empty?
|
33
33
|
end
|
34
34
|
|
@@ -39,7 +39,7 @@ namespace :db do
|
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
42
|
-
desc
|
42
|
+
desc 'Set mysql root user password.'
|
43
43
|
task :set_root_pass do
|
44
44
|
run "mysqladmin --no-defaults --port=#{mysql_port} --user=root --protocol=tcp password '#{mysql_password}'"
|
45
45
|
end
|
data/recipes/db/pg.rake
CHANGED
@@ -1,31 +1,31 @@
|
|
1
|
-
set_default :pg_home,
|
2
|
-
set_default :pg_initdb,
|
3
|
-
set_default :pg_ctl,
|
1
|
+
set_default :pg_home, ->{ `brew --prefix postgresql`.strip }
|
2
|
+
set_default :pg_initdb, '/usr/local/bin/initdb'
|
3
|
+
set_default :pg_ctl, '/usr/local/bin/pg_ctl'
|
4
4
|
|
5
|
-
set_default :pg_data_dir,
|
6
|
-
set_default :pg_init,
|
7
|
-
set_default :pg_start,
|
8
|
-
set_default :pg_stop,
|
9
|
-
set_default :pg_reload,
|
10
|
-
set_default :pg_restart,
|
5
|
+
set_default :pg_data_dir, ->{ "#{data_dir}/pgsql" }
|
6
|
+
set_default :pg_init, ->{ "#{pg_initdb} -D #{pg_data_dir} --debug" }
|
7
|
+
set_default :pg_start, ->{ "#{pg_ctl} -D #{pg_data_dir} -l #{log_dir}/pgsql.log start" }
|
8
|
+
set_default :pg_stop, ->{ "#{pg_ctl} -D #{pg_data_dir} stop" }
|
9
|
+
set_default :pg_reload, ->{ "#{pg_ctl} -D #{pg_data_dir} reload" }
|
10
|
+
set_default :pg_restart, ->{ "#{pg_ctl} -D #{pg_data_dir} -l #{log_dir}/pgsql.log restart" }
|
11
11
|
|
12
12
|
set_default :pg_super_users, {
|
13
|
-
pgsql:
|
13
|
+
pgsql: '123456'
|
14
14
|
}
|
15
15
|
|
16
16
|
namespace :db do
|
17
17
|
namespace :pg do
|
18
18
|
|
19
|
-
desc
|
19
|
+
desc 'Execute postgres initdb.'
|
20
20
|
task :init do
|
21
21
|
if File.exists?("#{pg_data_dir}/postgresql.conf")
|
22
|
-
|
22
|
+
say 'Postgresql database has already initialized.', :magenta, true
|
23
23
|
else
|
24
24
|
run pg_init
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
-
desc
|
28
|
+
desc 'Set super users for postgresql.'
|
29
29
|
task :set_super_users do
|
30
30
|
pg_super_users.each do|user, password|
|
31
31
|
sqls = ["CREATE USER #{user} WITH PASSWORD '#{password}';", "ALTER USER #{user} WITH SUPERUSER;"]
|
data/recipes/db/redis.rake
CHANGED
@@ -1,29 +1,29 @@
|
|
1
|
-
set_default :redis_conf,
|
2
|
-
set_default :redis_dir,
|
3
|
-
set_default :redis_pid,
|
4
|
-
set_default :redis_port,
|
1
|
+
set_default :redis_conf, ->{ "#{etc_dir}/redis.conf" }
|
2
|
+
set_default :redis_dir, ->{ "#{data_dir}/redis" }
|
3
|
+
set_default :redis_pid, ->{ "#{run_dir}/redis.pid" }
|
4
|
+
set_default :redis_port, 6379
|
5
5
|
|
6
|
-
set_default :redis_start,
|
7
|
-
set_default :redis_stop,
|
8
|
-
set_default :redis_restart,
|
6
|
+
set_default :redis_start, ->{ "redis-server #{redis_conf}" }
|
7
|
+
set_default :redis_stop, ->{ "redis-cli -p #{redis_port} shutdown" }
|
8
|
+
set_default :redis_restart, ->{ "kill -2 `#{redis_pid}` && #{redis_start}" }
|
9
9
|
|
10
|
-
set_default :redis_daemonize,
|
11
|
-
set_default :redis_timeout,
|
12
|
-
set_default :redis_loglevel,
|
13
|
-
set_default :redis_logfile,
|
14
|
-
set_default :redis_databases,
|
15
|
-
set_default :rdbcompression,
|
16
|
-
set_default :rdbchecksum,
|
17
|
-
set_default :redis_dbfilename,
|
18
|
-
set_default :redis_appendonly,
|
19
|
-
set_default :redis_activerehashing,
|
10
|
+
set_default :redis_daemonize, 'yes'
|
11
|
+
set_default :redis_timeout, 0
|
12
|
+
set_default :redis_loglevel, 'notice'
|
13
|
+
set_default :redis_logfile, 'stdout'
|
14
|
+
set_default :redis_databases, 16
|
15
|
+
set_default :rdbcompression, 'yes'
|
16
|
+
set_default :rdbchecksum, 'yes'
|
17
|
+
set_default :redis_dbfilename, 'dump.rdb'
|
18
|
+
set_default :redis_appendonly, 'yes'
|
19
|
+
set_default :redis_activerehashing, 'yes'
|
20
20
|
|
21
21
|
namespace :db do
|
22
22
|
namespace :redis do
|
23
|
-
desc
|
23
|
+
desc 'Initialize redis directory and copy redis.conf to etc directory.'
|
24
24
|
task :init do
|
25
25
|
mkdir_p(redis_dir)
|
26
|
-
template(
|
26
|
+
template('redis.conf.erb', redis_conf)
|
27
27
|
end
|
28
28
|
|
29
29
|
[:start, :stop, :restart].each do|cmd|
|
data/recipes/elasticsearch.rake
CHANGED
@@ -1,22 +1,22 @@
|
|
1
|
-
set_default :es_plugins_dir,
|
2
|
-
set_default :es_cluster_name,
|
3
|
-
set_default :es_data_dir,
|
4
|
-
set_default :es_network_host,
|
5
|
-
set_default :es_config,
|
1
|
+
set_default :es_plugins_dir, '/usr/local/var/lib/elasticsearch/plugins'
|
2
|
+
set_default :es_cluster_name, 'default_cluster'
|
3
|
+
set_default :es_data_dir, ->{ "#{data_dir}/elasticsearch/" }
|
4
|
+
set_default :es_network_host, '127.0.0.1'
|
5
|
+
set_default :es_config, ->{ "#{etc_dir}/elasticsearch/config.yml" }
|
6
6
|
|
7
7
|
#-f can let elasticsearch running in the foreground
|
8
|
-
set_default :elasticsearch_start, ->{"elasticsearch -D es.config=#{es_config} -p #{run_dir}/elasticsearch.pid"}
|
8
|
+
set_default :elasticsearch_start, ->{ "elasticsearch -D es.config=#{es_config} -p #{run_dir}/elasticsearch.pid" }
|
9
9
|
#set_default :elasticsearch_stop, ->{"elasticsearch -D es.config=#{es_config} -p #{run_dir}/elasticsearch.pid stop"}
|
10
|
-
set_default :elasticsearch_stop,
|
11
|
-
set_default :elasticsearch_shutdown, ->{"curl -XPOST 'http://#{es_network_host}:9200/_shutdown'"}
|
10
|
+
set_default :elasticsearch_stop, ->{ "kill `cat #{run_dir}/elasticsearch.pid`" }
|
11
|
+
set_default :elasticsearch_shutdown, ->{ "curl -XPOST 'http://#{es_network_host}:9200/_shutdown'" }
|
12
12
|
|
13
13
|
namespace :elasticsearch do
|
14
14
|
|
15
15
|
desc "Initialize elasticsearch directory and copy it's config files to etc path."
|
16
16
|
task :init do
|
17
17
|
mkdir_p("#{etc_dir}/elasticsearch")
|
18
|
-
template(
|
19
|
-
template(
|
18
|
+
template('elasticsearch/config.yml.erb', es_config)
|
19
|
+
template('elasticsearch/logging.yml.erb', "#{etc_dir}/elasticsearch/logging.yml")
|
20
20
|
end
|
21
21
|
|
22
22
|
[:start, :stop, :shutdown].each do|cmd|
|
data/recipes/httpd.rake
CHANGED
@@ -1,32 +1,32 @@
|
|
1
|
-
set_default :httpd,
|
2
|
-
set_default :httpd_server_root,
|
3
|
-
set_default :httpd_share_dir,
|
1
|
+
set_default :httpd, '/usr/sbin/httpd'
|
2
|
+
set_default :httpd_server_root, '/usr'
|
3
|
+
set_default :httpd_share_dir, '/usr/share/httpd'
|
4
4
|
|
5
|
-
set_default :httpd_etc_dir,
|
6
|
-
set_default :httpd_conf,
|
5
|
+
set_default :httpd_etc_dir, ->{ "#{etc_dir}/httpd" }
|
6
|
+
set_default :httpd_conf, ->{ "#{httpd_etc_dir}/httpd.conf" }
|
7
7
|
|
8
|
-
set_default :httpd_log_dir,
|
9
|
-
set_default :webdav_dir,
|
10
|
-
set_default :auth_user_file,
|
11
|
-
set_default :httpd_server_admin,
|
12
|
-
set_default :httpd_port,
|
13
|
-
set_default :httpd_server_name,
|
8
|
+
set_default :httpd_log_dir, ->{ "#{log_dir}/httpd" }
|
9
|
+
set_default :webdav_dir, ->{ "#{var_dir}/webdav" }
|
10
|
+
set_default :auth_user_file, ->{ "#{httpd_etc_dir}/user.passwd" }
|
11
|
+
set_default :httpd_server_admin, 'zhiqiangzhan@gmail.com'
|
12
|
+
set_default :httpd_port, 8888
|
13
|
+
set_default :httpd_server_name, ->{ "localhost:#{httpd_port}" }
|
14
14
|
|
15
|
-
set_default :auth_user,
|
15
|
+
set_default :auth_user, 'admin'
|
16
16
|
|
17
17
|
namespace :httpd do
|
18
|
-
desc
|
18
|
+
desc 'Initialize httpd config files.'
|
19
19
|
task :init do
|
20
20
|
mkdir_p(httpd_etc_dir, "#{httpd_etc_dir}/extra", httpd_log_dir, webdav_dir)
|
21
21
|
search_paths.each do|sp|
|
22
|
-
Dir["#{sp}/httpd
|
22
|
+
Dir["#{sp}/httpd/conf/*.erb"].each do|fn|
|
23
23
|
target = fn.sub("#{sp}/httpd", "#{httpd_etc_dir}").sub(/.erb$/, "")
|
24
24
|
template(fn, target) unless File.exists?(target)
|
25
25
|
end
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
29
|
-
desc
|
29
|
+
desc 'Create AuthUserFile.'
|
30
30
|
task :auth_user_file do
|
31
31
|
run "htpasswd -c #{auth_user_file} #{auth_user}"
|
32
32
|
end
|
data/recipes/nginx/www.rake
CHANGED
@@ -4,11 +4,11 @@ set_default :www_paths, {}
|
|
4
4
|
|
5
5
|
namespace :nginx do
|
6
6
|
namespace :www do
|
7
|
-
desc
|
7
|
+
desc 'Create www config files.'
|
8
8
|
task :init do
|
9
|
-
template(
|
10
|
-
template(
|
11
|
-
template(
|
9
|
+
template('nginx/www.conf.erb', "#{nginx_etc_dir}/www.conf", true)
|
10
|
+
template('nginx/sites-enabled/static.conf.erb', "#{nginx_etc_dir}/sites-enabled/static.http.conf", true) unless www_paths.empty?
|
11
|
+
template('nginx/sites-enabled/php.conf.erb', "#{nginx_etc_dir}/sites-enabled/php.http.conf", true)
|
12
12
|
end
|
13
13
|
|
14
14
|
[:start, :stop, :reload].each do|t|
|
@@ -18,7 +18,7 @@ namespace :nginx do
|
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
21
|
-
desc
|
21
|
+
desc 'Restart nginx www instance.'
|
22
22
|
task :restart do
|
23
23
|
nginx_restart(:www)
|
24
24
|
end
|
data/recipes/nginx.rake
CHANGED
@@ -1,17 +1,17 @@
|
|
1
|
-
set_default :nginx,
|
2
|
-
set_default :nginx_home, ->{`brew --prefix nginx`.strip}
|
3
|
-
set_default :nginx_etc_dir, ->{"#{etc_dir}/nginx"}
|
4
|
-
set_default :nginx_run_dir, ->{"#{run_dir}/nginx"}
|
5
|
-
set_default :nginx_prefix,
|
1
|
+
set_default :nginx, ->{ '/usr/local/bin/nginx' }
|
2
|
+
set_default :nginx_home, ->{ `brew --prefix nginx`.strip }
|
3
|
+
set_default :nginx_etc_dir, ->{ "#{etc_dir}/nginx" }
|
4
|
+
set_default :nginx_run_dir, ->{ "#{run_dir}/nginx" }
|
5
|
+
set_default :nginx_prefix, ->{ "#{log_dir}/nginx" }
|
6
6
|
|
7
7
|
set_default :worker_processes, 8
|
8
8
|
|
9
9
|
set_default :upstreams, [
|
10
|
-
{name: :fastcgi_server, servers: [
|
11
|
-
{name: :catalina_server, servers: [
|
10
|
+
{name: :fastcgi_server, servers: ['127.0.0.1:6666']},
|
11
|
+
{name: :catalina_server, servers: ['127.0.0.1:8080']}
|
12
12
|
]
|
13
13
|
|
14
|
-
set_default :server_name,
|
14
|
+
set_default :server_name, 'localhost'
|
15
15
|
|
16
16
|
set_default :use_ssl, false
|
17
17
|
set_default :ssl_certificate, ->{"#{etc_dir}/ssl/server.crt"}
|
@@ -32,7 +32,7 @@ end
|
|
32
32
|
|
33
33
|
def nginx_restart(name)
|
34
34
|
invoke "nginx:#{name}:stop"
|
35
|
-
puts
|
35
|
+
puts 'Start nginx......'
|
36
36
|
sleep 5
|
37
37
|
invoke "nginx:#{name}:start"
|
38
38
|
end
|
@@ -40,7 +40,7 @@ end
|
|
40
40
|
namespace :nginx do
|
41
41
|
desc "Initialize nginx directory and create it's config files."
|
42
42
|
task :init do
|
43
|
-
mkdir_p(nginx_etc_dir, nginx_run_dir, nginx_prefix)
|
43
|
+
mkdir_p(nginx_etc_dir, nginx_run_dir, nginx_prefix, nginx_log_dir)
|
44
44
|
unless File.exists?("#{nginx_etc_dir}/conf")
|
45
45
|
FileUtils.cp_r(find_templates("nginx/conf", false).first, nginx_etc_dir)
|
46
46
|
end
|