capitate 0.1.9 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Capfile +3 -2
- data/History.txt +6 -0
- data/Manifest.txt +28 -11
- data/bin/capitate +13 -61
- data/config/hoe.rb +2 -2
- data/docs/nginx.README +12 -0
- data/docs/recipes/centos.txt +33 -0
- data/docs/recipes/deploy-pending.txt +25 -0
- data/docs/recipes/deploy-web.txt +33 -0
- data/docs/recipes/deploy.txt +159 -0
- data/docs/recipes/docs.txt +26 -0
- data/docs/recipes/imagemagick-centos.txt +20 -0
- data/docs/recipes/imagemagick.txt +8 -0
- data/docs/recipes/index.txt +26 -0
- data/docs/recipes/memcached-centos.txt +32 -0
- data/docs/recipes/memcached.txt +35 -0
- data/docs/recipes/mongrel_cluster-centos.txt +27 -0
- data/docs/recipes/mongrel_cluster.txt +40 -0
- data/docs/recipes/monit-centos.txt +32 -0
- data/docs/recipes/monit.txt +8 -0
- data/docs/recipes/mysql-centos.txt +22 -0
- data/docs/recipes/mysql.txt +58 -0
- data/docs/recipes/nginx-centos.txt +43 -0
- data/docs/recipes/nginx.txt +51 -0
- data/docs/recipes/rails.txt +58 -0
- data/docs/recipes/ruby-centos.txt +22 -0
- data/docs/recipes/ruby.txt +8 -0
- data/docs/recipes/sphinx-centos.txt +35 -0
- data/docs/recipes/sphinx.txt +89 -0
- data/lib/capitate/cap_ext/run_via.rb +14 -0
- data/lib/capitate/plugins/gem.rb +2 -3
- data/lib/capitate/plugins/prompt.rb +24 -0
- data/lib/capitate/plugins/script.rb +29 -15
- data/lib/capitate/plugins/templates.rb +45 -40
- data/lib/capitate/plugins/yum.rb +12 -22
- data/lib/capitate/task_node.rb +28 -9
- data/lib/capitate/version.rb +2 -2
- data/lib/capitate.rb +4 -5
- data/lib/deployment/deploy.rb +42 -0
- data/lib/deployment/install-centos-rubyweb.rb +131 -0
- data/lib/recipes/centos/centos.rb +30 -21
- data/lib/recipes/centos/imagemagick.rb +9 -8
- data/lib/recipes/centos/memcached.rb +11 -21
- data/lib/recipes/centos/mongrel_cluster.rb +7 -11
- data/lib/recipes/centos/monit.rb +13 -18
- data/lib/recipes/centos/mysql.rb +6 -9
- data/lib/recipes/centos/nginx.rb +17 -30
- data/lib/recipes/centos/ruby.rb +14 -19
- data/lib/recipes/centos/sphinx.rb +14 -28
- data/lib/recipes/docs.rb +22 -6
- data/lib/recipes/memcached.rb +14 -8
- data/lib/recipes/mongrel_cluster.rb +11 -14
- data/lib/recipes/mysql.rb +22 -40
- data/lib/recipes/nginx.rb +9 -4
- data/lib/recipes/rails.rb +53 -6
- data/lib/recipes/sphinx.rb +86 -17
- data/lib/templates/capistrano/Capfile +2 -6
- data/lib/templates/monit/cert.sh +1 -1
- data/lib/templates/mysql/install_db.sql.erb +2 -2
- data/lib/templates/sphinx/sphinx.conf.erb +28 -399
- data/lib/templates/sphinx/sphinx_app.initd.centos.erb +1 -1
- data/website/index.html +20 -34
- data/website/index.txt +12 -22
- data/website/stylesheets/screen.css +22 -11
- data/website/template.rhtml +7 -5
- data/website/template_recipe.rhtml +7 -3
- metadata +55 -15
- data/lib/capitate/plugins/package.rb +0 -30
- data/lib/capitate/plugins/profiles.rb +0 -33
- data/lib/capitate/plugins/wget.rb +0 -23
- data/lib/profiles/centos-sick.rb +0 -116
- data/lib/recipes/README +0 -5
- data/lib/recipes/centos/README +0 -3
- data/lib/recipes/gems.rb +0 -20
- data/lib/recipes/packages.rb +0 -39
- data/lib/recipes/recipes.rb +0 -30
- data/lib/templates/centos/setup_for_web.sh +0 -17
- data/lib/templates/centos/sudoers +0 -95
@@ -0,0 +1,40 @@
|
|
1
|
+
h1. mongrel_cluster
|
2
|
+
|
3
|
+
"home":../index.html > "recipes":index.html > mongrel_cluster
|
4
|
+
|
5
|
+
|
6
|
+
h2. Namespaces
|
7
|
+
|
8
|
+
* "mongrel_cluster:centos":mongrel_cluster-centos.html (1)
|
9
|
+
|
10
|
+
|
11
|
+
h2. Tasks
|
12
|
+
|
13
|
+
* "mongrel_cluster:setup_monit":#mongrel_cluster:setup_monit
|
14
|
+
|
15
|
+
|
16
|
+
h2. Task documentation
|
17
|
+
|
18
|
+
h3(#mongrel_cluster:setup_monit). mongrel_cluster:setup_monit
|
19
|
+
|
20
|
+
Create monit configuration for mongrel cluster.
|
21
|
+
|
22
|
+
*mongrel_size*: Number of mongrels.
|
23
|
+
|
24
|
+
@set :mongrel_size, 3@
|
25
|
+
|
26
|
+
*mongrel_port*: Starting port for mongrels. If there are 3 mongrels with port 9000, then instances
|
27
|
+
will be at 9000, 9001, and 9002
|
28
|
+
|
29
|
+
@set :mongrel_port, 9000@
|
30
|
+
|
31
|
+
*mongrel_config_script*: Config script to load with mongrel. _Defaults to nil_
|
32
|
+
|
33
|
+
@set :mongrel_config_script, "config/mongrel_handler.rb"@
|
34
|
+
|
35
|
+
*monit_conf_dir*: Destination for monitrc. _Defaults to "/etc/monit"_
|
36
|
+
|
37
|
+
@set :monit_conf_dir, "/etc/monit"@
|
38
|
+
|
39
|
+
|
40
|
+
|
@@ -0,0 +1,32 @@
|
|
1
|
+
h1. monit:centos
|
2
|
+
|
3
|
+
"home":../index.html > "recipes":index.html > "monit":monit.html > centos
|
4
|
+
|
5
|
+
|
6
|
+
h2. Tasks
|
7
|
+
|
8
|
+
* "monit:centos:install":#monit:centos:install
|
9
|
+
|
10
|
+
|
11
|
+
h2. Task documentation
|
12
|
+
|
13
|
+
h3(#monit:centos:install). monit:centos:install
|
14
|
+
|
15
|
+
Install monit.
|
16
|
+
|
17
|
+
*monit_build_options*: Monit build options.
|
18
|
+
|
19
|
+
*monit_port*: Monit port. _Defaults to 2812_
|
20
|
+
|
21
|
+
@set :monit_port, 2812@
|
22
|
+
|
23
|
+
*monit_password*: Monit password. _Defaults to password prompt_
|
24
|
+
|
25
|
+
@set :monit_password, prompt.password('Monit admin password (to set): ')@
|
26
|
+
|
27
|
+
*monit_conf_dir*: Directory for monitrc files.
|
28
|
+
|
29
|
+
@set :monit_conf_dir, "/etc/monit"@
|
30
|
+
|
31
|
+
|
32
|
+
|
@@ -0,0 +1,22 @@
|
|
1
|
+
h1. mysql:centos
|
2
|
+
|
3
|
+
"home":../index.html > "recipes":index.html > "mysql":mysql.html > centos
|
4
|
+
|
5
|
+
|
6
|
+
h2. Tasks
|
7
|
+
|
8
|
+
* "mysql:centos:install":#mysql:centos:install
|
9
|
+
|
10
|
+
|
11
|
+
h2. Task documentation
|
12
|
+
|
13
|
+
h3(#mysql:centos:install). mysql:centos:install
|
14
|
+
|
15
|
+
Install mysql.
|
16
|
+
|
17
|
+
*mysql_admin_password_set*: Mysql admin password (to set). _Defaults to password prompt._
|
18
|
+
|
19
|
+
<pre>set :mysql_admin_password_set, prompt.password('Mysql admin password (to set): ')</pre>
|
20
|
+
|
21
|
+
|
22
|
+
|
@@ -0,0 +1,58 @@
|
|
1
|
+
h1. mysql
|
2
|
+
|
3
|
+
"home":../index.html > "recipes":index.html > mysql
|
4
|
+
|
5
|
+
|
6
|
+
h2. Namespaces
|
7
|
+
|
8
|
+
* "mysql:centos":mysql-centos.html (1)
|
9
|
+
|
10
|
+
|
11
|
+
h2. Tasks
|
12
|
+
|
13
|
+
* "mysql:install_monit":#mysql:install_monit
|
14
|
+
* "mysql:setup":#mysql:setup
|
15
|
+
|
16
|
+
|
17
|
+
h2. Task documentation
|
18
|
+
|
19
|
+
h3(#mysql:install_monit). mysql:install_monit
|
20
|
+
|
21
|
+
Install mysql monit hooks.
|
22
|
+
|
23
|
+
*db_port*: Mysql port. _Defaults to 3306_
|
24
|
+
|
25
|
+
*mysql_pid_path*: Path to mysql pid file. _Defaults to /var/run/mysqld/mysqld.pid_
|
26
|
+
|
27
|
+
@set :mysql_pid_path, "/var/run/mysqld/mysqld.pid"@
|
28
|
+
|
29
|
+
*monit_conf_dir*: Destination for monitrc. _Defaults to "/etc/monit"_
|
30
|
+
|
31
|
+
@set :monit_conf_dir, "/etc/monit"@
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
h3(#mysql:setup). mysql:setup
|
36
|
+
|
37
|
+
Create database, database user, and set grant permissions.
|
38
|
+
|
39
|
+
*db_name*: Database name (application).
|
40
|
+
|
41
|
+
*db_user*: Database user (application).
|
42
|
+
|
43
|
+
*db_pass*: Database password (application).
|
44
|
+
|
45
|
+
*grant_locations*: Grant locations. _Defaults to localhost_
|
46
|
+
|
47
|
+
@set :grant_locations, [ "localhost", "192.168.1.111" ]@
|
48
|
+
|
49
|
+
*grant_priv_type*: Grant privilege types. _Defaults to ALL_
|
50
|
+
|
51
|
+
@set :grant_priv_type, "ALL"@
|
52
|
+
|
53
|
+
*mysql_admin_password*: Mysql admin password (to use to connect). Defaults to password prompt.
|
54
|
+
|
55
|
+
@set :mysql_admin_password, prompt.password('Mysql admin password: '))@
|
56
|
+
|
57
|
+
|
58
|
+
|
@@ -0,0 +1,43 @@
|
|
1
|
+
h1. nginx:centos
|
2
|
+
|
3
|
+
"home":../index.html > "recipes":index.html > "nginx":nginx.html > centos
|
4
|
+
|
5
|
+
|
6
|
+
h2. Tasks
|
7
|
+
|
8
|
+
* "nginx:centos:install":#nginx:centos:install
|
9
|
+
* "nginx:centos:restart":#nginx:centos:restart
|
10
|
+
|
11
|
+
|
12
|
+
h2. Task documentation
|
13
|
+
|
14
|
+
h3(#nginx:centos:install). nginx:centos:install
|
15
|
+
|
16
|
+
Install nginx, conf, initscript, nginx user and service.
|
17
|
+
|
18
|
+
*nginx_build_options*: Nginx build options.
|
19
|
+
|
20
|
+
*nginx_bin_path*: Nginx sbin path. _Defaults to /sbin/nginx_
|
21
|
+
|
22
|
+
@set :nginx_bin_path, "/sbin/nginx"@
|
23
|
+
|
24
|
+
*nginx_conf_path*: Path to nginx conf. _Defaults to /etc/nginx/nginx.conf_
|
25
|
+
|
26
|
+
@set :nginx_conf_path, "/etc/nginx/nginx.conf"@
|
27
|
+
|
28
|
+
*nginx_pid_path*: Path to nginx pid file. _Defaults to /var/run/nginx.pid_
|
29
|
+
|
30
|
+
@set :nginx_pid_path, "/var/run/nginx.pid"@
|
31
|
+
|
32
|
+
*nginx_prefix_path*: Nginx install prefix. _Defaults to /var/nginx_
|
33
|
+
|
34
|
+
@set :nginx_prefix_path, "/var/nginx"@
|
35
|
+
|
36
|
+
|
37
|
+
|
38
|
+
h3(#nginx:centos:restart). nginx:centos:restart
|
39
|
+
|
40
|
+
Restart nginx (service)
|
41
|
+
|
42
|
+
|
43
|
+
|
@@ -0,0 +1,51 @@
|
|
1
|
+
h1. nginx
|
2
|
+
|
3
|
+
"home":../index.html > "recipes":index.html > nginx
|
4
|
+
|
5
|
+
|
6
|
+
h2. Namespaces
|
7
|
+
|
8
|
+
* "nginx:centos":nginx-centos.html (2)
|
9
|
+
|
10
|
+
|
11
|
+
h2. Tasks
|
12
|
+
|
13
|
+
* "nginx:install_monit":#nginx:install_monit
|
14
|
+
* "nginx:setup_mongrel":#nginx:setup_mongrel
|
15
|
+
|
16
|
+
|
17
|
+
h2. Task documentation
|
18
|
+
|
19
|
+
h3(#nginx:install_monit). nginx:install_monit
|
20
|
+
|
21
|
+
Install nginx monit hooks.
|
22
|
+
|
23
|
+
*nginx_pid_path*: Path to nginx pid file. _Defaults to /var/run/nginx.pid_
|
24
|
+
|
25
|
+
@set :nginx_pid_path, "/var/run/nginx.pid"@
|
26
|
+
|
27
|
+
*monit_conf_dir*: Destination for monitrc. _Defaults to "/etc/monit"_
|
28
|
+
|
29
|
+
@set :monit_conf_dir, "/etc/monit"@
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
h3(#nginx:setup_mongrel). nginx:setup_mongrel
|
34
|
+
|
35
|
+
Create and update the nginx vhost include.
|
36
|
+
|
37
|
+
mongrel_size: Number of mongrels.
|
38
|
+
|
39
|
+
set :mongrel_size, 3
|
40
|
+
|
41
|
+
mongrel_port: Starting port for mongrels.
|
42
|
+
If there are 3 mongrels with port 9000, then instances will be at 9000, 9001, and 9002
|
43
|
+
|
44
|
+
set :mongrel_port, 9000
|
45
|
+
|
46
|
+
domain_name: Domain name for nginx virtual host, (without www prefix).
|
47
|
+
|
48
|
+
set :domain_name, "foo.com"
|
49
|
+
|
50
|
+
|
51
|
+
|
@@ -0,0 +1,58 @@
|
|
1
|
+
h1. rails
|
2
|
+
|
3
|
+
"home":../index.html > "recipes":index.html > rails
|
4
|
+
|
5
|
+
|
6
|
+
h2. Tasks
|
7
|
+
|
8
|
+
* "rails:console":#rails:console
|
9
|
+
* "rails:mate_logs":#rails:mate_logs
|
10
|
+
* "rails:setup":#rails:setup
|
11
|
+
* "rails:tail_logs":#rails:tail_logs
|
12
|
+
* "rails:update_code":#rails:update_code
|
13
|
+
|
14
|
+
|
15
|
+
h2. Task documentation
|
16
|
+
|
17
|
+
h3(#rails:console). rails:console
|
18
|
+
|
19
|
+
Remotely console. (http://errtheblog.com/posts/19-streaming-capistrano)
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
h3(#rails:mate_logs). rails:mate_logs
|
24
|
+
|
25
|
+
Check production log files in TextMate. (http://errtheblog.com/posts/19-streaming-capistrano)
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
h3(#rails:setup). rails:setup
|
30
|
+
|
31
|
+
Create database yaml in shared path.
|
32
|
+
|
33
|
+
*db_name*: Database name (rails).
|
34
|
+
|
35
|
+
@set :db_name, "app_db_name"@
|
36
|
+
|
37
|
+
*db_user*: Database user (rails).
|
38
|
+
|
39
|
+
@set :db_user, "app_db_user"@
|
40
|
+
|
41
|
+
*db_pass*: Database password (rails).
|
42
|
+
|
43
|
+
@set :db_pass, "the_password"@
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
h3(#rails:tail_logs). rails:tail_logs
|
48
|
+
|
49
|
+
Tail production log files. (http://errtheblog.com/posts/19-streaming-capistrano)
|
50
|
+
|
51
|
+
|
52
|
+
|
53
|
+
h3(#rails:update_code). rails:update_code
|
54
|
+
|
55
|
+
Make symlink for database yaml
|
56
|
+
|
57
|
+
|
58
|
+
|
@@ -0,0 +1,22 @@
|
|
1
|
+
h1. ruby:centos
|
2
|
+
|
3
|
+
"home":../index.html > "recipes":index.html > "ruby":ruby.html > centos
|
4
|
+
|
5
|
+
|
6
|
+
h2. Tasks
|
7
|
+
|
8
|
+
* "ruby:centos:install":#ruby:centos:install
|
9
|
+
|
10
|
+
|
11
|
+
h2. Task documentation
|
12
|
+
|
13
|
+
h3(#ruby:centos:install). ruby:centos:install
|
14
|
+
|
15
|
+
Install ruby and rubygems.
|
16
|
+
|
17
|
+
*ruby_build_options*: Ruby build options.
|
18
|
+
|
19
|
+
*rubygems_build_options*: Rubygems build options.
|
20
|
+
|
21
|
+
|
22
|
+
|
@@ -0,0 +1,35 @@
|
|
1
|
+
h1. sphinx:centos
|
2
|
+
|
3
|
+
"home":../index.html > "recipes":index.html > "sphinx":sphinx.html > centos
|
4
|
+
|
5
|
+
|
6
|
+
h2. Tasks
|
7
|
+
|
8
|
+
* "sphinx:centos:install":#sphinx:centos:install
|
9
|
+
* "sphinx:centos:setup":#sphinx:centos:setup
|
10
|
+
|
11
|
+
|
12
|
+
h2. Task documentation
|
13
|
+
|
14
|
+
h3(#sphinx:centos:install). sphinx:centos:install
|
15
|
+
|
16
|
+
Install sphinx.
|
17
|
+
|
18
|
+
*sphinx_build_options*: Sphinx build options.
|
19
|
+
|
20
|
+
*sphinx_prefix*: Sphinx install prefix. _Defaults to "/usr/local/sphinx"_
|
21
|
+
|
22
|
+
|
23
|
+
|
24
|
+
h3(#sphinx:centos:setup). sphinx:centos:setup
|
25
|
+
|
26
|
+
Setup sphinx for application.
|
27
|
+
|
28
|
+
*sphinx_prefix*: Sphinx install prefix. _Defaults to "/usr/local/sphinx"_
|
29
|
+
|
30
|
+
*sphinx_pid_path*: Directory to sphinx pid. _Defaults to "[shared_path]/pids/searchd.pid"_
|
31
|
+
|
32
|
+
*sphinx_conf_path*: Path to sphinx.conf. _Defaults to "[shared_path]/config/sphinx.conf"_
|
33
|
+
|
34
|
+
|
35
|
+
|
@@ -0,0 +1,89 @@
|
|
1
|
+
h1. sphinx
|
2
|
+
|
3
|
+
"home":../index.html > "recipes":index.html > sphinx
|
4
|
+
|
5
|
+
|
6
|
+
h2. Namespaces
|
7
|
+
|
8
|
+
* "sphinx:centos":sphinx-centos.html (2)
|
9
|
+
|
10
|
+
|
11
|
+
h2. Tasks
|
12
|
+
|
13
|
+
* "sphinx:index_all":#sphinx:index_all
|
14
|
+
* "sphinx:restart":#sphinx:restart
|
15
|
+
* "sphinx:rotate_all":#sphinx:rotate_all
|
16
|
+
* "sphinx:setup_monit":#sphinx:setup_monit
|
17
|
+
* "sphinx:update_conf":#sphinx:update_conf
|
18
|
+
|
19
|
+
|
20
|
+
h2. Task documentation
|
21
|
+
|
22
|
+
h3(#sphinx:index_all). sphinx:index_all
|
23
|
+
|
24
|
+
Build sphinx indexes for application.
|
25
|
+
|
26
|
+
*sphinx_prefix*: Location to sphinx install. _Defaults to nil_
|
27
|
+
|
28
|
+
*sphinx_conf*: Location to sphinx conf. _Defaults to "[shared_path]/config/sphinx.conf"_
|
29
|
+
|
30
|
+
|
31
|
+
|
32
|
+
h3(#sphinx:restart). sphinx:restart
|
33
|
+
|
34
|
+
Restart sphinx
|
35
|
+
|
36
|
+
|
37
|
+
|
38
|
+
h3(#sphinx:rotate_all). sphinx:rotate_all
|
39
|
+
|
40
|
+
Rotate sphinx index for application.
|
41
|
+
|
42
|
+
*sphinx_prefix*: Location to sphinx install. _Defaults to nil_
|
43
|
+
|
44
|
+
*sphinx_conf*: Location to sphinx conf. _Defaults to "[shared_path]/config/sphinx.conf"_
|
45
|
+
|
46
|
+
|
47
|
+
|
48
|
+
h3(#sphinx:setup_monit). sphinx:setup_monit
|
49
|
+
|
50
|
+
Create monit configuration for sphinx.
|
51
|
+
|
52
|
+
*monit_conf_dir*: Destination for monitrc. _Defaults to "/etc/monit"_
|
53
|
+
|
54
|
+
*sphinx_pid_path*: Location for sphinx pid. _Defaults to "[shared_path]/pids/searchd.pid"_
|
55
|
+
|
56
|
+
|
57
|
+
|
58
|
+
h3(#sphinx:update_conf). sphinx:update_conf
|
59
|
+
|
60
|
+
Update sphinx for application.
|
61
|
+
|
62
|
+
*sphinx_conf_template*: Path to sphinx.conf.erb. _Defaults to "config/templates/sphinx.conf.erb"_
|
63
|
+
|
64
|
+
*sphinx_conf_path*: Path to sphinx.conf. _Defaults to "[shared_path]/config/sphinx.conf"_
|
65
|
+
|
66
|
+
*sphinx_port*: Sphinx port. _Defaults to 3312_
|
67
|
+
|
68
|
+
*sphinx_conf_root*: Directory for sphinx configuration, like stopwords.txt. _Defaults to [current_path]/config_
|
69
|
+
|
70
|
+
*sphinx_index_root*: Directory for sphinx indexes. _Defaults to "[shared_path]/var/index"_
|
71
|
+
|
72
|
+
*sphinx_log_root*: Directory for sphinx logs. _Defaults to "[shared_path]/log"_
|
73
|
+
|
74
|
+
*sphinx_pid_root*: Directory for sphinx pids. _Defaults to "[shared_path]/pids"_
|
75
|
+
|
76
|
+
|
77
|
+
*sphinx_db_user*: Sphinx DB user. _Defaults to db_user_
|
78
|
+
|
79
|
+
*sphinx_db_pass*: Sphinx DB password. _Defaults to db_pass_
|
80
|
+
|
81
|
+
*sphinx_db_name*: Sphinx DB name. _Defaults to db_name_
|
82
|
+
|
83
|
+
|
84
|
+
*sphinx_db_host*: Sphinx DB host. _Defaults to location for primary :db role_
|
85
|
+
|
86
|
+
*sphinx_host*: Sphinx DB host. _Defaults to location for :search role_
|
87
|
+
|
88
|
+
|
89
|
+
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Capitate::CapExt::RunVia
|
2
|
+
|
3
|
+
# Invoke command with current run_method setting.
|
4
|
+
#
|
5
|
+
# ==== Options
|
6
|
+
# +cmd+:: Command to run
|
7
|
+
# +options+:: Options (see invoke_command options)
|
8
|
+
#
|
9
|
+
def run_via(cmd, options = {}, &block)
|
10
|
+
options[:via] = fetch(:run_method, :sudo) unless options.has_key?(:via)
|
11
|
+
invoke_command(cmd, options, &block)
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
data/lib/capitate/plugins/gem.rb
CHANGED
@@ -14,12 +14,11 @@ module Capitate::Plugins::Gem
|
|
14
14
|
gems = [ gems ] unless gems.is_a?(Array)
|
15
15
|
|
16
16
|
# Install one at a time because we may need to pass install args (e.g. mysql)
|
17
|
-
# TODO: Fix this
|
18
17
|
gems.each do |gem|
|
19
|
-
|
18
|
+
run_via "gem install --no-rdoc --no-ri --no-verbose #{gem}"
|
20
19
|
end
|
21
20
|
end
|
22
21
|
|
23
22
|
end
|
24
23
|
|
25
|
-
Capistrano.plugin :
|
24
|
+
Capistrano.plugin :gems, Capitate::Plugins::Gem
|
@@ -0,0 +1,24 @@
|
|
1
|
+
|
2
|
+
module Capitate::Plugins::Prompt
|
3
|
+
|
4
|
+
def ask(label, &block)
|
5
|
+
Capistrano::CLI.ui.ask(label, &block)
|
6
|
+
end
|
7
|
+
|
8
|
+
def password(label, verify = false)
|
9
|
+
# Lazy
|
10
|
+
Proc.new {
|
11
|
+
password = Capistrano::CLI.password_prompt(label)
|
12
|
+
|
13
|
+
if verify
|
14
|
+
password_verify = Capistrano::CLI.password_prompt("[Verify] #{label}")
|
15
|
+
raise "Passwords do not match" if password != password_verify
|
16
|
+
end
|
17
|
+
|
18
|
+
password
|
19
|
+
}
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
Capistrano.plugin :prompt, Capitate::Plugins::Prompt
|
@@ -16,9 +16,12 @@ module Capitate::Plugins::Script
|
|
16
16
|
def make_install(name, options)
|
17
17
|
install(name, options) do |dir|
|
18
18
|
configure_options = options[:configure_options] || ""
|
19
|
-
|
20
|
-
|
21
|
-
|
19
|
+
|
20
|
+
run_all <<-CMDS
|
21
|
+
echo 'Configuring #{name}...' && cd #{dir} && ./configure #{configure_options} > configure.log
|
22
|
+
echo 'Compiling #{name}...' && cd #{dir} && make > make.log
|
23
|
+
echo 'Installing #{name}...' && cd #{dir} && make install > make_install.log
|
24
|
+
CMDS
|
22
25
|
end
|
23
26
|
end
|
24
27
|
|
@@ -62,21 +65,18 @@ module Capitate::Plugins::Script
|
|
62
65
|
|
63
66
|
if File.extname(script) == ".erb"
|
64
67
|
name = script[0...script.length-4]
|
65
|
-
dest = "/tmp/#{name}"
|
66
|
-
|
68
|
+
dest = "/tmp/cap/#{name}"
|
69
|
+
run_via "mkdir -p #{File.dirname(dest)}"
|
67
70
|
put template.load(script, override_binding || binding), dest
|
68
71
|
else
|
69
72
|
name = script
|
70
|
-
dest = "/tmp/#{name}"
|
71
|
-
|
73
|
+
dest = "/tmp/cap/#{name}"
|
74
|
+
run_via "mkdir -p #{File.dirname(dest)}"
|
72
75
|
put template.load(script), dest
|
73
76
|
end
|
74
77
|
|
75
78
|
# If want verbose, -v
|
76
|
-
|
77
|
-
|
78
|
-
# Cleanup
|
79
|
-
sudo "rm -rf #{File.dirname(dest)}"
|
79
|
+
run_via "sh -v #{dest} && rm -rf #{File.dirname(dest)}"
|
80
80
|
end
|
81
81
|
|
82
82
|
# Download and unpack URL.
|
@@ -103,16 +103,30 @@ module Capitate::Plugins::Script
|
|
103
103
|
|
104
104
|
unpack_dir ||= file.gsub(/\.tar\.gz|\.tgz/, "")
|
105
105
|
|
106
|
-
|
107
|
-
|
106
|
+
run_all <<-CMDS
|
107
|
+
echo 'Getting #{url}...' && mkdir -p #{dest} && cd #{dest} && wget -nv #{url}
|
108
|
+
echo 'Unpacking...' && cd #{dest} && tar zxf #{file}
|
109
|
+
CMDS
|
108
110
|
|
109
111
|
if block_given?
|
110
112
|
yield("#{dest}/#{unpack_dir}")
|
111
|
-
|
112
|
-
|
113
|
+
run_via "rm -f #{dest}/#{file}"
|
114
|
+
run_via "rm -rf #{dest}" if clean
|
113
115
|
end
|
114
116
|
end
|
115
117
|
|
118
|
+
# Run all commands (separated by newlines)
|
119
|
+
#
|
120
|
+
# ==== Options
|
121
|
+
# +cmds+:: Commands (separated by newlines)
|
122
|
+
# +options+:: See invoke_command options
|
123
|
+
#
|
124
|
+
def run_all(cmds, options = {}, &block)
|
125
|
+
cmds.split("\n").each do |cmd|
|
126
|
+
run_via(cmd, options, &block)
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
116
130
|
end
|
117
131
|
|
118
132
|
Capistrano.plugin :script, Capitate::Plugins::Script
|