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.
- checksums.yaml +4 -4
- data/bin/peony +2 -2
- data/lib/peony/actions.rb +66 -20
- data/lib/peony/{utils.rb → configure.rb} +13 -40
- data/lib/peony/default.rb +9 -2
- data/lib/peony/rake.rb +1 -1
- data/lib/peony/scope.rb +82 -0
- data/lib/peony/settings.rb +24 -23
- data/lib/peony/shell/basic.rb +19 -17
- data/lib/peony/shell.rb +3 -4
- data/lib/peony/version.rb +1 -1
- data/lib/peony.rb +6 -3
- data/recipes/db/mongo.rake +26 -26
- data/recipes/db/mysql.rake +46 -28
- data/recipes/db/pg.rake +20 -17
- data/recipes/db/redis.rake +22 -20
- data/recipes/elasticsearch.rake +14 -12
- data/recipes/httpd.rake +20 -18
- data/recipes/nginx/www.rake +8 -6
- data/recipes/nginx.rake +25 -23
- data/recipes/php.rake +10 -5
- data/spec/peony_spec.rb +3 -0
- data/spec/scope_spec.rb +48 -0
- data/spec/settings_in_rake_spec.rb +61 -1
- data/spec/settings_spec.rb +2 -2
- data/spec/spec_helper.rb +1 -3
- data/templates/elasticsearch/config.yml.erb +48 -34
- data/templates/elasticsearch/logging.yml.erb +3 -1
- data/templates/httpd/extra/httpd-autoindex.conf.erb +2 -2
- data/templates/httpd/extra/httpd-dav.conf.erb +4 -4
- data/templates/httpd/extra/httpd-mpm.conf.erb +1 -1
- data/templates/httpd/extra/httpd-multilang-errordoc.conf.erb +2 -2
- data/templates/httpd/httpd.conf.erb +8 -8
- data/templates/mongo/master.conf.erb +8 -8
- data/templates/mongo/slave.conf.erb +9 -9
- data/templates/mysql/my.cnf.erb +48 -34
- data/templates/nginx/sites-enabled/php.conf.erb +7 -7
- data/templates/nginx/sites-enabled/static.conf.erb +4 -4
- data/templates/nginx/www.conf.erb +77 -77
- data/templates/redis.conf.erb +13 -13
- metadata +6 -3
data/recipes/db/mysql.rake
CHANGED
@@ -1,47 +1,65 @@
|
|
1
|
-
|
2
|
-
set_default :
|
3
|
-
set_default :
|
4
|
-
set_default :
|
1
|
+
scope :mysql do
|
2
|
+
set_default :home, `brew --prefix mysql`.strip
|
3
|
+
set_default :server, '/usr/local/bin/mysql.server'
|
4
|
+
set_default :mysqld, '/usr/local/bin/mysqld_safe'
|
5
|
+
set_default :mysqladmin, '/usr/local/bin/mysqladmin'
|
6
|
+
set_default :mysql_install_db, '/usr/local/bin/mysql_install_db'
|
5
7
|
|
6
|
-
set_default :
|
7
|
-
set_default :
|
8
|
-
set_default :
|
8
|
+
set_default :data_dir, ->{ "#{data_dir}/mysql/#{mysql.port}" }
|
9
|
+
set_default :log_dir, ->{ "#{log_dir}/mysql/#{mysql.port}" }
|
10
|
+
set_default :config_file, ->{ "/etc/my.cnf" }
|
9
11
|
|
10
|
-
set_default :
|
11
|
-
set_default :mysql_password, '123456'
|
12
|
+
set_default :log_error, ->{ "#{mysql.log_dir}/error.log" }
|
12
13
|
|
13
|
-
set_default :
|
14
|
-
set_default :
|
15
|
-
set_default :mysql_socket, '/tmp/mysql.sock'
|
16
|
-
set_default :mysql_charset, 'UTF8'
|
17
|
-
set_default :mysql_general_log, 'ON'
|
18
|
-
set_default :mysql_slow_query_log, 'ON'
|
14
|
+
set_default :user, 'root'
|
15
|
+
set_default :password, '123456'
|
19
16
|
|
20
|
-
set_default :
|
21
|
-
set_default :
|
22
|
-
set_default :
|
17
|
+
set_default :pid_file, ->{ "#{run_dir}/mysql/#{mysql.port}.pid" }
|
18
|
+
set_default :port, '3306'
|
19
|
+
set_default :socket, '/tmp/mysql.sock'
|
20
|
+
set_default :charset, 'UTF8'
|
21
|
+
set_default :general_log, 'ON'
|
22
|
+
set_default :slow_query_log, 'ON'
|
23
|
+
|
24
|
+
set_default :run_cmd, ->{ ->(cmd){"#{mysql.server} #{cmd} --basedir=#{mysql.home} --datadir=#{mysql.data_dir} --pid-file=#{mysql.pid_file} --user=#{user}"} }
|
25
|
+
|
26
|
+
#set_default :start, ->{ "#{mysql.mysqld} --defaults-file=#{mysql.config_file} --datadir=#{mysql.data_dir} --basedir=#{mysql.home} &" }
|
27
|
+
#set_default :stop, ->{ "#{mysql.mysqladmin} --verbose --user=#{mysql.user} --password=#{mysql.password} shutdown" }
|
28
|
+
#set_default :status, ->{ "#{mysql.mysqladmin} --verbose status variables" }
|
29
|
+
end
|
23
30
|
|
24
31
|
namespace :db do
|
25
|
-
|
26
32
|
namespace :mysql do
|
27
|
-
|
28
33
|
desc 'Create mysql directorys, config file and run mysql_install_db'
|
29
34
|
task :init do
|
30
|
-
mkdir_p(
|
31
|
-
template('mysql/my.cnf.erb',
|
32
|
-
|
35
|
+
mkdir_p(mysql.data_dir, mysql.log_dir, "#{run_dir}/mysql/")
|
36
|
+
template('mysql/my.cnf.erb', mysql.config_file, true)
|
37
|
+
inside mysql.home do
|
38
|
+
unless File.exist? "#{mysql.data_dir}/mysql/user.frm"
|
39
|
+
ENV['TMPDIR'] = nil
|
40
|
+
run "#{mysql.mysql_install_db} --verbose --user=#{mysql.user} --basedir=#{mysql.home} --datadir=#{mysql.data_dir} --tmpdir=/tmp"
|
41
|
+
end
|
42
|
+
#run "#{mysql.mysql_install_db} --defaults-file=#{mysql.config_file} --datadir=#{mysql.data_dir} --basedir=#{mysql.home}" if Dir["#{mysql.data_dir}/*"].empty?
|
43
|
+
end
|
33
44
|
end
|
34
|
-
|
35
|
-
[:start, :stop, :status].each do|t|
|
45
|
+
|
46
|
+
[:start, :stop, :restart, :reload, :"force-reload", :status].each do|t|
|
36
47
|
desc "#{t} mysql instance."
|
37
48
|
task t do
|
38
|
-
run
|
49
|
+
run mysql.run_cmd.call(t)
|
39
50
|
end
|
40
51
|
end
|
41
|
-
|
52
|
+
=begin
|
53
|
+
[:start].each do|t|
|
54
|
+
desc "#{t} mysql instance."
|
55
|
+
task t do
|
56
|
+
run mysql.send(t)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
=end
|
42
60
|
desc 'Set mysql root user password.'
|
43
61
|
task :set_root_pass do
|
44
|
-
run "mysqladmin --no-defaults --port=#{
|
62
|
+
run "#{mysql.mysqladmin} --no-defaults --port=#{mysql.port} --user=root --protocol=tcp password '#{mysql.password}'"
|
45
63
|
end
|
46
64
|
|
47
65
|
namespace :web do
|
data/recipes/db/pg.rake
CHANGED
@@ -1,33 +1,36 @@
|
|
1
|
-
|
2
|
-
set_default :
|
3
|
-
set_default :
|
1
|
+
scope :pg do
|
2
|
+
set_default :home, ->{ `brew --prefix postgresql`.strip }
|
3
|
+
set_default :initdb, '/usr/local/bin/initdb'
|
4
|
+
set_default :pg_ctl, '/usr/local/bin/pg_ctl'
|
4
5
|
|
5
|
-
set_default :
|
6
|
-
set_default :
|
7
|
-
set_default :
|
8
|
-
set_default :
|
9
|
-
set_default :
|
10
|
-
set_default :
|
6
|
+
set_default :data_dir, ->{ "#{data_dir}/pgsql" }
|
7
|
+
set_default :run_cmd, ->{ lambda{|cmd| "#{pg.pg_ctl} #{cmd} -D #{pg.data_dir} -l #{log_dir}/pgsql.log" }}
|
8
|
+
set_default :init, ->{ "#{pg.pg_ctl} -D #{pg.data_dir} --debug init" }
|
9
|
+
#set_default :start, ->{ "#{pg.pg_ctl} -D #{pg.data_dir} -l #{log_dir}/pgsql.log start" }
|
10
|
+
#set_default :stop, ->{ "#{pg.pg_ctl} -D #{pg.data_dir} stop" }
|
11
|
+
#set_default :reload, ->{ "#{pg.pg_ctl} -D #{pg.data_dir} reload" }
|
12
|
+
#set_default :restart, ->{ "#{pg.pg_ctl} -D #{pg.data_dir} -l #{log_dir}/pgsql.log restart" }
|
11
13
|
|
12
|
-
set_default :
|
13
|
-
|
14
|
-
}
|
14
|
+
set_default :super_users, {
|
15
|
+
pgsql: '123456'
|
16
|
+
}
|
17
|
+
end
|
15
18
|
|
16
19
|
namespace :db do
|
17
20
|
namespace :pg do
|
18
21
|
|
19
22
|
desc 'Execute postgres initdb.'
|
20
23
|
task :init do
|
21
|
-
if File.exists?("#{
|
24
|
+
if File.exists?("#{pg.data_dir}/postgresql.conf")
|
22
25
|
say 'Postgresql database has already initialized.', :magenta, true
|
23
26
|
else
|
24
|
-
run
|
27
|
+
run pg.run_cmd.call(:init)
|
25
28
|
end
|
26
29
|
end
|
27
30
|
|
28
31
|
desc 'Set super users for postgresql.'
|
29
32
|
task :set_super_users do
|
30
|
-
|
33
|
+
pg.super_users.each do|user, password|
|
31
34
|
sqls = ["CREATE USER #{user} WITH PASSWORD '#{password}';", "ALTER USER #{user} WITH SUPERUSER;"]
|
32
35
|
sqls.each do|sql|
|
33
36
|
run "psql -d postgres -c \"#{sql}\""
|
@@ -35,10 +38,10 @@ namespace :db do
|
|
35
38
|
end
|
36
39
|
end
|
37
40
|
|
38
|
-
[:start, :stop, :restart, :reload].each do|cmd|
|
41
|
+
[:start, :stop, :restart, :reload, :status].each do|cmd|
|
39
42
|
desc "#{cmd} postgresql instance."
|
40
43
|
task cmd do
|
41
|
-
run
|
44
|
+
run pg.run_cmd.call(cmd)
|
42
45
|
end
|
43
46
|
end
|
44
47
|
end
|
data/recipes/db/redis.rake
CHANGED
@@ -1,35 +1,37 @@
|
|
1
|
-
|
2
|
-
set_default :
|
3
|
-
set_default :
|
4
|
-
set_default :
|
1
|
+
scope :redis do
|
2
|
+
set_default :config_file, ->{ "#{etc_dir}/redis.conf" }
|
3
|
+
set_default :data_dir, ->{ "#{data_dir}/redis" }
|
4
|
+
set_default :pid_file, ->{ "#{run_dir}/redis.pid" }
|
5
|
+
set_default :port, 6379
|
5
6
|
|
6
|
-
set_default :
|
7
|
-
set_default :
|
8
|
-
set_default :
|
7
|
+
set_default :start, ->{ "redis-server #{redis.config_file}" }
|
8
|
+
set_default :stop, ->{ "redis-cli -p #{redis.port} shutdown" }
|
9
|
+
set_default :restart, ->{ "kill -2 `#{redis.pid_file}` && #{redis.start}" }
|
9
10
|
|
10
|
-
set_default :
|
11
|
-
set_default :
|
12
|
-
set_default :
|
13
|
-
set_default :
|
14
|
-
set_default :
|
15
|
-
set_default :rdbcompression,
|
16
|
-
set_default :rdbchecksum,
|
17
|
-
set_default :
|
18
|
-
set_default :
|
19
|
-
set_default :
|
11
|
+
set_default :daemonize, 'yes'
|
12
|
+
set_default :timeout, 0
|
13
|
+
set_default :loglevel, 'notice'
|
14
|
+
set_default :logfile, 'stdout'
|
15
|
+
set_default :databases, 16
|
16
|
+
set_default :rdbcompression, 'yes'
|
17
|
+
set_default :rdbchecksum, 'yes'
|
18
|
+
set_default :dbfilename, 'dump.rdb'
|
19
|
+
set_default :appendonly, 'yes'
|
20
|
+
set_default :activerehashing, 'yes'
|
21
|
+
end
|
20
22
|
|
21
23
|
namespace :db do
|
22
24
|
namespace :redis do
|
23
25
|
desc 'Initialize redis directory and copy redis.conf to etc directory.'
|
24
26
|
task :init do
|
25
|
-
mkdir_p(
|
26
|
-
template('redis.conf.erb',
|
27
|
+
mkdir_p(redis.data_dir)
|
28
|
+
template('redis.conf.erb', redis.config_file)
|
27
29
|
end
|
28
30
|
|
29
31
|
[:start, :stop, :restart].each do|cmd|
|
30
32
|
desc "#{cmd} redis"
|
31
33
|
task cmd do
|
32
|
-
run
|
34
|
+
run redis.send(cmd)
|
33
35
|
end
|
34
36
|
end
|
35
37
|
end
|
data/recipes/elasticsearch.rake
CHANGED
@@ -1,28 +1,30 @@
|
|
1
|
-
|
2
|
-
set_default :
|
3
|
-
set_default :
|
4
|
-
set_default :
|
5
|
-
set_default :
|
1
|
+
scope :es do
|
2
|
+
set_default :plugins_dir, '/usr/local/var/lib/elasticsearch/plugins'
|
3
|
+
set_default :cluster_name, 'default_cluster'
|
4
|
+
set_default :data_dir, ->{ "#{data_dir}/elasticsearch/" }
|
5
|
+
set_default :network_host, '127.0.0.1'
|
6
|
+
set_default :config_file, ->{ "#{etc_dir}/elasticsearch/config.yml" }
|
6
7
|
|
7
|
-
#-f can let elasticsearch running in the foreground
|
8
|
-
set_default :
|
9
|
-
#set_default :elasticsearch_stop, ->{"elasticsearch -D es.config=#{es_config} -p #{run_dir}/elasticsearch.pid stop"}
|
10
|
-
set_default :
|
11
|
-
set_default :
|
8
|
+
#-f can let elasticsearch running in the foreground
|
9
|
+
set_default :start, ->{ "elasticsearch -d --config=#{es.config_file} -p #{run_dir}/elasticsearch.pid" }
|
10
|
+
#set_default :elasticsearch_stop, ->{"elasticsearch -D es.config=#{es_config} -p #{run_dir}/elasticsearch.pid stop"}
|
11
|
+
set_default :stop, ->{ "kill `cat #{run_dir}/elasticsearch.pid`" }
|
12
|
+
set_default :shutdown, ->{ "curl -XPOST 'http://#{es.network_host}:9200/_shutdown'" }
|
13
|
+
end
|
12
14
|
|
13
15
|
namespace :elasticsearch do
|
14
16
|
|
15
17
|
desc "Initialize elasticsearch directory and copy it's config files to etc path."
|
16
18
|
task :init do
|
17
19
|
mkdir_p("#{etc_dir}/elasticsearch")
|
18
|
-
template('elasticsearch/config.yml.erb',
|
20
|
+
template('elasticsearch/config.yml.erb', es.config_file)
|
19
21
|
template('elasticsearch/logging.yml.erb', "#{etc_dir}/elasticsearch/logging.yml")
|
20
22
|
end
|
21
23
|
|
22
24
|
[:start, :stop, :shutdown].each do|cmd|
|
23
25
|
desc "#{cmd} elasticsearch."
|
24
26
|
task cmd do
|
25
|
-
run
|
27
|
+
run es.send("#{cmd}")
|
26
28
|
end
|
27
29
|
end
|
28
30
|
end
|
data/recipes/httpd.rake
CHANGED
@@ -1,26 +1,28 @@
|
|
1
|
-
|
2
|
-
set_default :
|
3
|
-
set_default :
|
1
|
+
scope :httpd do
|
2
|
+
set_default :bin, '/usr/sbin/httpd'
|
3
|
+
set_default :server_root, '/usr'
|
4
|
+
set_default :share_dir, '/usr/share/httpd'
|
4
5
|
|
5
|
-
set_default :
|
6
|
-
set_default :
|
6
|
+
set_default :etc_dir, ->{ "#{etc_dir}/httpd" }
|
7
|
+
set_default :config_file, ->{ "#{httpd.etc_dir}/httpd.conf" }
|
7
8
|
|
8
|
-
set_default :
|
9
|
-
set_default :webdav_dir, ->{ "#{var_dir}/webdav" }
|
10
|
-
set_default :auth_user_file, ->{ "#{
|
11
|
-
set_default :
|
12
|
-
set_default :
|
13
|
-
set_default :
|
9
|
+
set_default :log_dir, ->{ "#{log_dir}/httpd" }
|
10
|
+
set_default :webdav_dir, ->{ "#{var_dir}/webdav" }
|
11
|
+
set_default :auth_user_file, ->{ "#{httpd.etc_dir}/user.passwd" }
|
12
|
+
set_default :server_admin, 'zhiqiangzhan@gmail.com'
|
13
|
+
set_default :port, 6789
|
14
|
+
set_default :server_name, ->{ "localhost:#{httpd.port}" }
|
14
15
|
|
15
|
-
set_default :auth_user, 'admin'
|
16
|
+
set_default :auth_user, 'admin'
|
17
|
+
end
|
16
18
|
|
17
19
|
namespace :httpd do
|
18
20
|
desc 'Initialize httpd config files.'
|
19
21
|
task :init do
|
20
|
-
mkdir_p(
|
21
|
-
|
22
|
-
Dir["#{
|
23
|
-
target = fn.sub("#{
|
22
|
+
mkdir_p(httpd.etc_dir, "#{httpd.etc_dir}/extra", httpd.log_dir, httpd.webdav_dir)
|
23
|
+
template_paths.each do|tp|
|
24
|
+
Dir["#{tp}/httpd/**/*.erb"].each do|fn|
|
25
|
+
target = fn.sub("#{tp}/httpd", "#{httpd.etc_dir}").sub(/.erb$/, '')
|
24
26
|
template(fn, target) unless File.exists?(target)
|
25
27
|
end
|
26
28
|
end
|
@@ -28,14 +30,14 @@ namespace :httpd do
|
|
28
30
|
|
29
31
|
desc 'Create AuthUserFile.'
|
30
32
|
task :auth_user_file do
|
31
|
-
run "htpasswd -c #{auth_user_file} #{auth_user}"
|
33
|
+
run "htpasswd -c #{httpd.auth_user_file} #{httpd.auth_user}"
|
32
34
|
end
|
33
35
|
|
34
36
|
namespace :webdav do
|
35
37
|
[:start, :restart, :stop].each do|t|
|
36
38
|
desc "#{t} httpd instance."
|
37
39
|
task t do
|
38
|
-
run "#{httpd} -f #{
|
40
|
+
run "#{httpd.bin} -f #{httpd.config_file} -k #{t}"
|
39
41
|
end
|
40
42
|
end
|
41
43
|
end
|
data/recipes/nginx/www.rake
CHANGED
@@ -1,14 +1,16 @@
|
|
1
|
-
|
2
|
-
set_default :
|
3
|
-
set_default :
|
1
|
+
scope :nginx do
|
2
|
+
set_default :www_http_port, 80
|
3
|
+
set_default :www_https_port, 443
|
4
|
+
set_default :www_paths, {}
|
5
|
+
end
|
4
6
|
|
5
7
|
namespace :nginx do
|
6
8
|
namespace :www do
|
7
9
|
desc 'Create www config files.'
|
8
10
|
task :init do
|
9
|
-
template('nginx/www.conf.erb', "#{
|
10
|
-
template('nginx/sites-enabled/static.conf.erb', "#{
|
11
|
-
template('nginx/sites-enabled/php.conf.erb', "#{
|
11
|
+
template('nginx/www.conf.erb', "#{nginx.etc_dir}/www.conf", true)
|
12
|
+
template('nginx/sites-enabled/static.conf.erb', "#{nginx.etc_dir}/sites-enabled/static.http.conf", true) unless nginx.www_paths.empty?
|
13
|
+
template('nginx/sites-enabled/php.conf.erb', "#{nginx.etc_dir}/sites-enabled/php.http.conf", true)
|
12
14
|
end
|
13
15
|
|
14
16
|
[:start, :stop, :reload].each do|t|
|
data/recipes/nginx.rake
CHANGED
@@ -1,38 +1,40 @@
|
|
1
|
-
|
2
|
-
set_default :
|
3
|
-
set_default :
|
4
|
-
set_default :
|
5
|
-
set_default :
|
1
|
+
scope :nginx do
|
2
|
+
set_default :bin, ->{ '/usr/local/bin/nginx' }
|
3
|
+
set_default :home, ->{ `brew --prefix nginx`.strip }
|
4
|
+
set_default :etc_dir, ->{ "#{etc_dir}/nginx" }
|
5
|
+
set_default :run_dir, ->{ "#{run_dir}/nginx" }
|
6
|
+
set_default :prefix, ->{ "#{log_dir}/nginx" }
|
6
7
|
|
7
|
-
set_default :worker_processes, 8
|
8
|
-
|
9
|
-
set_default :upstreams, [
|
10
|
-
{name: :fastcgi_server, servers: ['127.0.0.1:6666']},
|
11
|
-
{name: :catalina_server, servers: ['127.0.0.1:8080']}
|
12
|
-
]
|
8
|
+
set_default :worker_processes, 8
|
13
9
|
|
14
|
-
set_default :
|
10
|
+
set_default :upstreams, [
|
11
|
+
{name: :fastcgi_server, servers: ['127.0.0.1:6666']},
|
12
|
+
{name: :catalina_server, servers: ['127.0.0.1:8080']}
|
13
|
+
]
|
15
14
|
|
16
|
-
set_default :
|
17
|
-
set_default :ssl_certificate, ->{"#{etc_dir}/ssl/server.crt"}
|
18
|
-
set_default :ssl_certificate_key, ->{"#{etc_dir}/ssl/server.key"}
|
15
|
+
set_default :server_name, 'localhost'
|
19
16
|
|
17
|
+
set_default :use_ssl, true
|
18
|
+
set_default :ssl_certificate, ->{"#{etc_dir}/ssl/server.crt"}
|
19
|
+
set_default :ssl_certificate_key, ->{"#{etc_dir}/ssl/server.key"}
|
20
|
+
end
|
20
21
|
|
21
22
|
def nginx_start_cmd(name)
|
22
|
-
"#{nginx} -c #{
|
23
|
+
"#{nginx.bin} -c #{nginx.etc_dir}/#{name}.conf -p #{nginx.prefix}"
|
23
24
|
end
|
24
25
|
|
25
26
|
def nginx_stop_cmd(name)
|
26
|
-
"#{nginx} -s quit -c #{
|
27
|
+
"#{nginx.bin} -s quit -c #{nginx.etc_dir}/#{name}.conf -p #{nginx.prefix}"
|
27
28
|
end
|
28
29
|
|
29
30
|
def nginx_reload_cmd(name)
|
30
|
-
"#{nginx} -s reload -c #{
|
31
|
+
"#{nginx.bin} -s reload -c #{nginx.etc_dir}/#{name}.conf -p #{nginx.prefix}"
|
31
32
|
end
|
32
33
|
|
33
34
|
def nginx_restart(name)
|
35
|
+
say_status :restart, 'restart nginx', :green
|
34
36
|
invoke "nginx:#{name}:stop"
|
35
|
-
|
37
|
+
say 'Start nginx......', :yellow
|
36
38
|
sleep 5
|
37
39
|
invoke "nginx:#{name}:start"
|
38
40
|
end
|
@@ -40,10 +42,10 @@ end
|
|
40
42
|
namespace :nginx do
|
41
43
|
desc "Initialize nginx directory and create it's config files."
|
42
44
|
task :init do
|
43
|
-
mkdir_p(
|
44
|
-
unless File.exists?("#{
|
45
|
-
FileUtils.cp_r(find_templates("nginx/conf", false).first,
|
45
|
+
mkdir_p(nginx.etc_dir, nginx.run_dir, nginx.prefix)
|
46
|
+
unless File.exists?("#{nginx.etc_dir}/conf")
|
47
|
+
FileUtils.cp_r(find_templates("nginx/conf", false).first, nginx.etc_dir)
|
46
48
|
end
|
47
|
-
FileUtils.mkdir_p("#{
|
49
|
+
FileUtils.mkdir_p("#{nginx.etc_dir}/sites-enabled") unless File.exists?("#{nginx.etc_dir}/sites-enabled")
|
48
50
|
end
|
49
51
|
end
|
data/recipes/php.rake
CHANGED
@@ -1,7 +1,12 @@
|
|
1
|
-
|
2
|
-
set_default :
|
3
|
-
set_default :
|
4
|
-
set_default :
|
1
|
+
scope :php do
|
2
|
+
set_default :home, ->{ "#{share_dir}/php5" }
|
3
|
+
set_default :php_cgi, ->{ "#{php.home}/bin/php-cgi" }
|
4
|
+
set_default :spawn_fcgi, '/usr/local/bin/spawn-fcgi'
|
5
|
+
set_default :fcgi_run_dir, ->{ "#{run_dir}/fcgi" }
|
6
|
+
set_default :fcgi_address, '127.0.0.1'
|
7
|
+
set_default :fcgi_port, 6666
|
8
|
+
set_default :fcgi_children, 6
|
9
|
+
end
|
5
10
|
|
6
11
|
namespace :php do
|
7
12
|
namespace :fcgi do
|
@@ -12,7 +17,7 @@ namespace :php do
|
|
12
17
|
|
13
18
|
desc 'Start fcgi.'
|
14
19
|
task :start => :init do
|
15
|
-
run "#{spawn_fcgi} -a
|
20
|
+
run "#{php.spawn_fcgi} -a #{php.fcgi_address} -p #{php.fcgi_port} -C #{php.fcgi_children} -f #{php.php_cgi} -u #{user} -d #{php.fcgi_run_dir} -P #{php.fcgi_run_dir}/spawn_fcgi.pid > /dev/null"
|
16
21
|
end
|
17
22
|
|
18
23
|
desc 'Kill fcgi.'
|
data/spec/peony_spec.rb
CHANGED
data/spec/scope_spec.rb
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Peony do
|
4
|
+
describe 'Scope' do
|
5
|
+
it 'should can set and get value' do
|
6
|
+
root_scope = Peony::Scope.new(:root)
|
7
|
+
scope = Peony::Scope.new(:my, root_scope)
|
8
|
+
root_scope[:a], scope[:b] = 1, 2
|
9
|
+
|
10
|
+
scope.has_key?(:a).should be_true
|
11
|
+
scope.key?(:a).should be_true
|
12
|
+
scope.include?(:a).should be_true
|
13
|
+
scope.local?(:a).should be_false
|
14
|
+
|
15
|
+
scope[:a].should == 1
|
16
|
+
scope.set(:a, 2)
|
17
|
+
scope[:a].should == 2
|
18
|
+
root_scope[:a].should == 2
|
19
|
+
|
20
|
+
scope[:b].should == 2
|
21
|
+
root_scope[:b].should == nil
|
22
|
+
scope.set(:b, 3)
|
23
|
+
scope[:b].should == 3
|
24
|
+
root_scope[:b].should == nil
|
25
|
+
|
26
|
+
root_scope.set(:b, 5)
|
27
|
+
scope[:b].should == 3
|
28
|
+
root_scope[:b].should == 5
|
29
|
+
|
30
|
+
scope.local(:a, 6)
|
31
|
+
scope[:a].should == 6
|
32
|
+
root_scope[:a].should == 2
|
33
|
+
scope[:a] = 8
|
34
|
+
scope[:a].should == 8
|
35
|
+
root_scope[:a].should == 2
|
36
|
+
|
37
|
+
scope.a.should == 8
|
38
|
+
root_scope.a.should == 2
|
39
|
+
scope.a?.should be_true
|
40
|
+
|
41
|
+
scope.delete(:a)
|
42
|
+
scope[:a] = 9
|
43
|
+
scope[:a].should == 9
|
44
|
+
root_scope[:a].should == 9
|
45
|
+
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -34,6 +34,66 @@ describe 'Settings in rake tasks' do
|
|
34
34
|
set :path, lambda { "/var/www/#{settings.version!}" }
|
35
35
|
}
|
36
36
|
peony.path
|
37
|
-
}.to raise_error(
|
37
|
+
}.to raise_error(KeyError, /version/)
|
38
38
|
end
|
39
|
+
|
40
|
+
it '#settings with default value' do
|
41
|
+
peony {
|
42
|
+
set :a, '100'
|
43
|
+
set_default :a, 3000
|
44
|
+
set_default :b, 6000
|
45
|
+
}
|
46
|
+
peony.a.should == '100'
|
47
|
+
peony.b.should == 6000
|
48
|
+
end
|
49
|
+
|
50
|
+
it '#settings with scope' do
|
51
|
+
peony {
|
52
|
+
set :a, 1
|
53
|
+
set 'e', 1
|
54
|
+
set 'f', 1
|
55
|
+
set 'g', 1
|
56
|
+
scope 'scope1' do
|
57
|
+
set :a, 2
|
58
|
+
set :b, 2
|
59
|
+
set :u, 2
|
60
|
+
set :v, 2
|
61
|
+
set :w, 2
|
62
|
+
scope 'scope2' do
|
63
|
+
set 'a', 3
|
64
|
+
set 'b', 3
|
65
|
+
set 'c', 3
|
66
|
+
set :x, 3
|
67
|
+
set :y, 3
|
68
|
+
set :z, 3
|
69
|
+
end
|
70
|
+
end
|
71
|
+
}
|
72
|
+
|
73
|
+
peony.a.should == 1
|
74
|
+
peony.e.should == 1
|
75
|
+
peony.f.should == 1
|
76
|
+
peony.g.should == 1
|
77
|
+
peony.scope1.a.should == 2
|
78
|
+
peony.scope1.b.should == 2
|
79
|
+
peony.scope1.a.should == 2
|
80
|
+
peony.scope1.u.should == 2
|
81
|
+
peony.scope1.v.should == 2
|
82
|
+
peony.scope1.w.should == 2
|
83
|
+
peony.scope1.scope2.a.should == 3
|
84
|
+
peony.scope1.scope2.b.should == 3
|
85
|
+
peony.scope1.scope2.c.should == 3
|
86
|
+
peony.scope1.scope2.x.should == 3
|
87
|
+
peony.scope1.scope2.y.should == 3
|
88
|
+
peony.scope1.scope2.z.should == 3
|
89
|
+
|
90
|
+
peony.scope1.e.should == 1
|
91
|
+
peony.scope1.f.should == 1
|
92
|
+
peony.scope1.g.should == 1
|
93
|
+
peony.scope1.scope2.u.should == 2
|
94
|
+
peony.scope1.scope2.v.should == 2
|
95
|
+
peony.scope1.scope2.w.should == 2
|
96
|
+
end
|
97
|
+
|
98
|
+
|
39
99
|
end
|
data/spec/settings_spec.rb
CHANGED
@@ -46,7 +46,7 @@ describe Peony::Settings do
|
|
46
46
|
end
|
47
47
|
|
48
48
|
it 'question mark should work with nils' do
|
49
|
-
@settings.deploy_to =
|
49
|
+
@settings.deploy_to = '/var/www'
|
50
50
|
@settings.deploy_to?.should be_true
|
51
51
|
@settings.foobar?.should be_false
|
52
52
|
end
|
@@ -63,7 +63,7 @@ describe Peony::Settings do
|
|
63
63
|
end
|
64
64
|
|
65
65
|
it 'bangs should check for settings' do
|
66
|
-
expect { @settings.non_existent_setting! }.to raise_error(
|
66
|
+
expect { @settings.non_existent_setting! }.to raise_error(KeyError, /non_existent_setting/)
|
67
67
|
end
|
68
68
|
|
69
69
|
it 'bangs should return settings' do
|
data/spec/spec_helper.rb
CHANGED
@@ -11,11 +11,9 @@ require 'bundler/setup'
|
|
11
11
|
require 'rake'
|
12
12
|
require 'peony'
|
13
13
|
|
14
|
-
puts "Peony, version v#{Peony::Version}"
|
15
|
-
|
16
14
|
class PeonyScope
|
17
15
|
include Rake::DSL if Rake.const_defined?(:DSL)
|
18
|
-
include Peony::
|
16
|
+
include Peony::Configure
|
19
17
|
include Peony::Shell
|
20
18
|
include Peony::Actions
|
21
19
|
end
|