capistrano-demonz 0.0.7 → 0.0.8
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/README.md +12 -1
- data/lib/demonz/drupal.rb +66 -0
- data/lib/demonz/version.rb +1 -1
- metadata +43 -62
data/README.md
CHANGED
@@ -2,7 +2,18 @@
|
|
2
2
|
|
3
3
|
Capistrano recipes developed for use by [Demonz Media](http://demonzmedia.com).
|
4
4
|
|
5
|
-
**Current version:** 0.0.
|
5
|
+
**Current version:** 0.0.8
|
6
|
+
|
7
|
+
## Changes ##
|
8
|
+
### 0.0.8 ###
|
9
|
+
* Added 'deploy:delete_release' for the Drupal recipe, lets you remove a specific release (and cleanup as required).
|
10
|
+
|
11
|
+
### 0.0.6/0.0.7
|
12
|
+
* Fixed a number of bugs and default settings issues.
|
13
|
+
* Added automated Compass (SASS) compilation
|
14
|
+
|
15
|
+
### 0.0.5
|
16
|
+
* Initial stable release
|
6
17
|
|
7
18
|
Only includes a Drupal recipe for now.
|
8
19
|
|
data/lib/demonz/drupal.rb
CHANGED
@@ -73,6 +73,72 @@ configuration.load do
|
|
73
73
|
run "#{try_sudo} rm -Rf #{latest_release}/sites/default/files"
|
74
74
|
end
|
75
75
|
|
76
|
+
desc "Delete a specified release"
|
77
|
+
task :delete_release, :roles => :web do
|
78
|
+
removed_release = ENV['RELEASE'] || fetch(:release, nil)
|
79
|
+
delete_latest = false
|
80
|
+
|
81
|
+
# If no release specified, use latest.
|
82
|
+
if removed_release.nil?
|
83
|
+
logger.important "no release specified, using latest release instead"
|
84
|
+
removed_release = releases.last
|
85
|
+
|
86
|
+
# Keep track of some extra variables for this special case.
|
87
|
+
delete_latest = true
|
88
|
+
prior_release = releases[-2]
|
89
|
+
end
|
90
|
+
|
91
|
+
# Prevent heart attacks.
|
92
|
+
confirm_deletion = text_prompt("About to delete release '#{removed_release}', continue? (Y/n) ").downcase
|
93
|
+
raise Capistrano::Error, "User unsure, exiting." if confirm_deletion != 'y'
|
94
|
+
|
95
|
+
removal_path = File.join(releases_path, removed_release)
|
96
|
+
removed_db_file = File.join(tmp_backups_path, "#{removed_release}.sql.gz")
|
97
|
+
|
98
|
+
logger.info "backing up to '#{tmp_backups_path}"
|
99
|
+
logger.important "this backup is temporary, please make sure you move it elsewhere if you need it!"
|
100
|
+
run "#{drush_bin} -r #{removal_path} sql-dump | gzip -c --best > #{removed_db_file}"
|
101
|
+
logger.info "database backed up"
|
102
|
+
|
103
|
+
if (delete_latest)
|
104
|
+
set :latest_release, :previous_release
|
105
|
+
set :previous_release, releases.length > 2 ? File.join(releases_path, releases[-3]) : nil
|
106
|
+
|
107
|
+
# Backup files dir.
|
108
|
+
removed_files_bak = File.join(tmp_backups_path, "#{removed_release}.files.tar.gz")
|
109
|
+
files_dir_location = File.join(shared_path, 'default')
|
110
|
+
run "cd #{files_dir_location} && tar -cvpf - files | #{try_sudo} gzip -c --best > #{removed_files_bak}"
|
111
|
+
logger.info "files directory backed up"
|
112
|
+
|
113
|
+
# Update 'current' symlink to previous release if removing latest.
|
114
|
+
if previous_release.nil?
|
115
|
+
logger.info "no previous release detected, removing symlink"
|
116
|
+
run "#{try_sudo} rm -f #{current_path}"
|
117
|
+
else
|
118
|
+
logger.info "updating symlink to point to previous release"
|
119
|
+
symlink
|
120
|
+
|
121
|
+
# Restore previous files dir.
|
122
|
+
previous_files_bak = File.join(backups_path, "files_before_#{removed_release}.tar.gz")
|
123
|
+
if remote_file_exists?(previous_files_bak)
|
124
|
+
logger.info "restoring previous files backup"
|
125
|
+
run "cd #{files_dir_location} && #{try_sudo} tar -xvpzf #{previous_files_bak}"
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
# Remove database.
|
131
|
+
mysql_connection = capture("#{drush_bin} -r #{removal_path} sql-connect").chomp
|
132
|
+
removed_db_name = get_db_name(application, removed_release)
|
133
|
+
delete_database(mysql_connection, removed_db_name)
|
134
|
+
logger.info "removed database"
|
135
|
+
|
136
|
+
# Remove code and release from the release file
|
137
|
+
run "#{try_sudo} rm -rf #{removal_path}; true"
|
138
|
+
remove_release_from_history(removed_release, release_file)
|
139
|
+
logger.info "removed release"
|
140
|
+
end
|
141
|
+
|
76
142
|
namespace :web do
|
77
143
|
desc "Disable the application and show a message screen"
|
78
144
|
task :disable, :roles => :web do
|
data/lib/demonz/version.rb
CHANGED
metadata
CHANGED
@@ -1,64 +1,55 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-demonz
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.8
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 7
|
10
|
-
version: 0.0.7
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Chinthaka Godawita
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2013-01-14 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: railsless-deploy
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
hash: 19
|
29
|
-
segments:
|
30
|
-
- 1
|
31
|
-
- 0
|
32
|
-
- 2
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
33
21
|
version: 1.0.2
|
34
22
|
type: :runtime
|
35
|
-
version_requirements: *id001
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: capistrano
|
38
23
|
prerelease: false
|
39
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.0.2
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: capistrano
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
40
33
|
none: false
|
41
|
-
requirements:
|
42
|
-
- -
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
hash: 49
|
45
|
-
segments:
|
46
|
-
- 2
|
47
|
-
- 13
|
48
|
-
- 5
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
49
37
|
version: 2.13.5
|
50
38
|
type: :runtime
|
51
|
-
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 2.13.5
|
52
46
|
description: Demonz Media recipes for Capistrano (for Drupal and other web apps).
|
53
|
-
email:
|
47
|
+
email:
|
54
48
|
- chinthaka.godawita@demonzmedia.com
|
55
49
|
executables: []
|
56
|
-
|
57
50
|
extensions: []
|
58
|
-
|
59
51
|
extra_rdoc_files: []
|
60
|
-
|
61
|
-
files:
|
52
|
+
files:
|
62
53
|
- Gemfile
|
63
54
|
- LICENSE.txt
|
64
55
|
- README.md
|
@@ -71,36 +62,26 @@ files:
|
|
71
62
|
- lib/demonz/version.rb
|
72
63
|
homepage: https://github.com/demonz/capistrano-demonz
|
73
64
|
licenses: []
|
74
|
-
|
75
65
|
post_install_message:
|
76
66
|
rdoc_options: []
|
77
|
-
|
78
|
-
require_paths:
|
67
|
+
require_paths:
|
79
68
|
- lib
|
80
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
69
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
81
70
|
none: false
|
82
|
-
requirements:
|
83
|
-
- -
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
|
86
|
-
|
87
|
-
- 0
|
88
|
-
version: "0"
|
89
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - ! '>='
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '0'
|
75
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
90
76
|
none: false
|
91
|
-
requirements:
|
92
|
-
- -
|
93
|
-
- !ruby/object:Gem::Version
|
94
|
-
|
95
|
-
segments:
|
96
|
-
- 0
|
97
|
-
version: "0"
|
77
|
+
requirements:
|
78
|
+
- - ! '>='
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: '0'
|
98
81
|
requirements: []
|
99
|
-
|
100
82
|
rubyforge_project:
|
101
83
|
rubygems_version: 1.8.24
|
102
84
|
signing_key:
|
103
85
|
specification_version: 3
|
104
86
|
summary: Useful task libraries for Demonz Media recipes for Capistrano
|
105
87
|
test_files: []
|
106
|
-
|