capitate 0.1.9 → 0.2.1
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.
- 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
|