capistrano-ash 0.0.3 → 0.0.5
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/CHANGELOG.rdoc +9 -0
- data/README.textile +63 -1
- data/Rakefile +4 -1
- data/VERSION +1 -1
- data/capistrano-ash.gemspec +6 -4
- data/lib/ash/base.rb +4 -0
- data/lib/ash/zend_doctrine.rb +58 -0
- metadata +6 -4
data/CHANGELOG.rdoc
ADDED
data/README.textile
CHANGED
@@ -1,5 +1,67 @@
|
|
1
|
+
h2. Deploying Drupal example
|
2
|
+
|
1
3
|
The capistrano/ash/drupal library takes a hash of Drupal multisites in the following format.
|
2
4
|
|
3
5
|
@set :multisites, {"default" => "mysite.com", "another" => "another.mysite.com"}@
|
4
6
|
|
5
|
-
where each key is a folder in your @sites@ directory and each value is the URL of the multisite. If you are not using multisites, just exclude the @:multisites@ variable definition.
|
7
|
+
where each key is a folder in your @sites@ directory and each value is the URL of the multisite. If you are not using multisites, just exclude the @:multisites@ variable definition.
|
8
|
+
|
9
|
+
h2. Deploying Zend or Zend/Doctrine example
|
10
|
+
|
11
|
+
<pre>
|
12
|
+
<code>
|
13
|
+
# Capfile
|
14
|
+
load 'deploy' if respond_to?(:namespace) # cap2 differentiator
|
15
|
+
|
16
|
+
# Define available stages
|
17
|
+
set :stages, %w(staging production)
|
18
|
+
set :default_stage, "staging"
|
19
|
+
|
20
|
+
# --------------------------------------------
|
21
|
+
# Define required Gems/libraries
|
22
|
+
# --------------------------------------------
|
23
|
+
require 'ash/zend_doctrine'
|
24
|
+
|
25
|
+
# --------------------------------------------
|
26
|
+
# Setting defaults
|
27
|
+
# --------------------------------------------
|
28
|
+
# IP-address or host's servername
|
29
|
+
role :app, "bestappever.com"
|
30
|
+
role :web, "bestappever.com"
|
31
|
+
role :db, "bestappever.com", :primary => true
|
32
|
+
|
33
|
+
# Application settings.
|
34
|
+
set :application, "best_app_ever"
|
35
|
+
|
36
|
+
# VCS information.
|
37
|
+
set :repository, "https://svn.example.com/REPO/trunk"
|
38
|
+
set :scm_username, "SVN_USER"
|
39
|
+
set :scm_password, proc{Capistrano::CLI.password_prompt("Subversion password for '#{scm_username}':")}
|
40
|
+
|
41
|
+
# SSH login credentials
|
42
|
+
set :user, "SSH_USER"
|
43
|
+
set :password, proc{Capistrano::CLI.password_prompt("SSH password for '#{user}':")}
|
44
|
+
|
45
|
+
# --------------------------------------------
|
46
|
+
# Calling our Methods
|
47
|
+
# --------------------------------------------
|
48
|
+
after "deploy:setup_shared", "app:setup_shared"
|
49
|
+
after "zend:symlink", "app:symlink"
|
50
|
+
|
51
|
+
# --------------------------------------------
|
52
|
+
# Application Specific Custom Methods
|
53
|
+
# --------------------------------------------
|
54
|
+
namespace :app do
|
55
|
+
desc "Setup shared directories and permissions specific to the application"
|
56
|
+
task :setup_shared, :roles => :web, :except => { :no_release => true } do
|
57
|
+
run "mkdir -p #{shared_path}/media"
|
58
|
+
sudo "chmod -R 777 #{shared_path}/*"
|
59
|
+
end
|
60
|
+
|
61
|
+
desc "Symlink shared directories specific to the application"
|
62
|
+
task :symlink, :except => { :no_release => true } do
|
63
|
+
run "ln -nfs #{shared_path}/media #{current_release}/public/media"
|
64
|
+
end
|
65
|
+
end
|
66
|
+
</code>
|
67
|
+
</pre>
|
data/Rakefile
CHANGED
@@ -1,8 +1,11 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
|
1
4
|
begin
|
2
5
|
require 'jeweler'
|
3
6
|
Jeweler::Tasks.new do |gemspec|
|
4
7
|
gemspec.name = "capistrano-ash"
|
5
|
-
gemspec.summary = "August Ash recipes for Capistrano"
|
8
|
+
gemspec.summary = "Useful task libraries for August Ash recipes for Capistrano"
|
6
9
|
gemspec.description = "August Ash recipes for Capistrano"
|
7
10
|
gemspec.email = "jake@augustash.com"
|
8
11
|
gemspec.homepage = "https://github.com/augustash/capistrano-ash"
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.5
|
data/capistrano-ash.gemspec
CHANGED
@@ -5,29 +5,31 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{capistrano-ash}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.5"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["August Ash"]
|
12
|
-
s.date = %q{2010-12-
|
12
|
+
s.date = %q{2010-12-08}
|
13
13
|
s.description = %q{August Ash recipes for Capistrano}
|
14
14
|
s.email = %q{jake@augustash.com}
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"README.textile"
|
17
17
|
]
|
18
18
|
s.files = [
|
19
|
+
"CHANGELOG.rdoc",
|
19
20
|
"README.textile",
|
20
21
|
"Rakefile",
|
21
22
|
"VERSION",
|
22
23
|
"capistrano-ash.gemspec",
|
23
24
|
"lib/ash/base.rb",
|
24
25
|
"lib/ash/common.rb",
|
25
|
-
"lib/ash/drupal.rb"
|
26
|
+
"lib/ash/drupal.rb",
|
27
|
+
"lib/ash/zend_doctrine.rb"
|
26
28
|
]
|
27
29
|
s.homepage = %q{https://github.com/augustash/capistrano-ash}
|
28
30
|
s.require_paths = ["lib"]
|
29
31
|
s.rubygems_version = %q{1.3.7}
|
30
|
-
s.summary = %q{August Ash recipes for Capistrano}
|
32
|
+
s.summary = %q{Useful task libraries for August Ash recipes for Capistrano}
|
31
33
|
|
32
34
|
if s.respond_to? :specification_version then
|
33
35
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
data/lib/ash/base.rb
CHANGED
@@ -0,0 +1,58 @@
|
|
1
|
+
# Require our base library.
|
2
|
+
require 'ash/base'
|
3
|
+
|
4
|
+
configuration = Capistrano::Configuration.respond_to?(:instance) ?
|
5
|
+
Capistrano::Configuration.instance(:must_exist) :
|
6
|
+
Capistrano.configuration(:must_exist)
|
7
|
+
|
8
|
+
configuration.load do
|
9
|
+
|
10
|
+
# --------------------------------------------
|
11
|
+
# Calling our Methods
|
12
|
+
# --------------------------------------------
|
13
|
+
after "deploy:setup", "deploy:setup_shared"
|
14
|
+
after "deploy:finalize_update", "ash:fixperms"
|
15
|
+
after "deploy:symlink", "zend:symlink"
|
16
|
+
after "zend:symlink", "zend:set_environment"
|
17
|
+
after "deploy", "deploy:cleanup"
|
18
|
+
|
19
|
+
# --------------------------------------------
|
20
|
+
# Overloaded Methods
|
21
|
+
# --------------------------------------------
|
22
|
+
namespace :deploy do
|
23
|
+
desc "Setup shared directories and permissions after initial setup"
|
24
|
+
task :setup_shared, :roles => :web, :except => { :no_release => true } do
|
25
|
+
run "mkdir -p #{shared_path}/var"
|
26
|
+
run "mkdir -p #{shared_path}/var/logs"
|
27
|
+
run "mkdir -p #{shared_path}/var/cache"
|
28
|
+
run "mkdir -p #{shared_path}/var/sessions"
|
29
|
+
run "mkdir -p #{shared_path}/system"
|
30
|
+
sudo "chmod -R 777 #{shared_path}/*"
|
31
|
+
end
|
32
|
+
|
33
|
+
desc "[internal] Touches up the released code. This is called by update_code after the basic deploy finishes."
|
34
|
+
task :finalize_update, :roles => :web, :except => { :no_release => true } do
|
35
|
+
# remove shared directories
|
36
|
+
run "rm -Rf #{latest_release}/var"
|
37
|
+
run "rm -Rf #{latest_release}/public/system"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
namespace :zend do
|
42
|
+
desc "Symlink shared directories"
|
43
|
+
task :symlink, :except => { :no_release => true } do
|
44
|
+
run "ln -nfs #{shared_path}/var #{current_release}/var"
|
45
|
+
run "ln -nfs #{shared_path}/system #{current_release}/public/system"
|
46
|
+
run "mv #{latest_release}/application/configs/application.ini.dist #{latest_release}/application/configs/application.ini"
|
47
|
+
run "mv #{latest_release}/public/htaccess.#{stage} #{latest_release}/public/.htaccess"
|
48
|
+
run "cp #{latest_release}/scripts/doctrine-cli.#{stage} #{latest_release}/scripts/doctrine-cli"
|
49
|
+
sudo "chmod +x #{latest_release}/scripts/doctrine-cli"
|
50
|
+
end
|
51
|
+
|
52
|
+
desc "Set proper environment variable in scripts"
|
53
|
+
task :set_environment, :roles => :web do
|
54
|
+
run "perl -pi -e 's/production/#{stage}/' #{latest_release}/application/Application.php"
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 5
|
9
|
+
version: 0.0.5
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- August Ash
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-12-
|
17
|
+
date: 2010-12-08 00:00:00 -06:00
|
18
18
|
default_executable:
|
19
19
|
dependencies: []
|
20
20
|
|
@@ -27,6 +27,7 @@ extensions: []
|
|
27
27
|
extra_rdoc_files:
|
28
28
|
- README.textile
|
29
29
|
files:
|
30
|
+
- CHANGELOG.rdoc
|
30
31
|
- README.textile
|
31
32
|
- Rakefile
|
32
33
|
- VERSION
|
@@ -34,6 +35,7 @@ files:
|
|
34
35
|
- lib/ash/base.rb
|
35
36
|
- lib/ash/common.rb
|
36
37
|
- lib/ash/drupal.rb
|
38
|
+
- lib/ash/zend_doctrine.rb
|
37
39
|
has_rdoc: true
|
38
40
|
homepage: https://github.com/augustash/capistrano-ash
|
39
41
|
licenses: []
|
@@ -65,6 +67,6 @@ rubyforge_project:
|
|
65
67
|
rubygems_version: 1.3.7
|
66
68
|
signing_key:
|
67
69
|
specification_version: 3
|
68
|
-
summary: August Ash recipes for Capistrano
|
70
|
+
summary: Useful task libraries for August Ash recipes for Capistrano
|
69
71
|
test_files: []
|
70
72
|
|