peony 0.1.6 → 0.1.8
Sign up to get free protection for your applications and to get access to all the features.
- 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
|