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