capistrano-ash 0.0.13 → 0.0.15

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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.13
1
+ 0.0.15
@@ -18,11 +18,12 @@ configuration.load do
18
18
  # Set default stages
19
19
  set :stages, %w(staging production)
20
20
  set :default_stge, "staging"
21
-
21
+
22
22
  # --------------------------------------------
23
23
  # Task chains
24
24
  # --------------------------------------------
25
25
  after "deploy:setup", "deploy:setup_shared"
26
+ after "deploy:setup_shared", "deploy:setup_backups"
26
27
  after "deploy", "deploy:cleanup"
27
28
 
28
29
  # --------------------------------------------
@@ -53,6 +54,13 @@ configuration.load do
53
54
  # phpMyAdmin version
54
55
  set :pma_version, "3.3.8"
55
56
 
57
+ # Backups Path
58
+ _cset(:backups_path) { File.join(deploy_to, "backups") }
59
+
60
+ # Define which files or directories you want to exclude from being backed up
61
+ _cset(:backup_exclude) { [] }
62
+ set :exclude_string, ''
63
+
56
64
  # show password requests on windows
57
65
  # (http://weblog.jamisbuck.org/2007/10/14/capistrano-2-1)
58
66
  default_run_options[:pty] = true
@@ -65,6 +73,11 @@ configuration.load do
65
73
  task :setup_shared do
66
74
  puts "STUB: Setup"
67
75
  end
76
+
77
+ desc "Setup backup directory for database and web files"
78
+ task :setup_backup, :except => { :no_release => true } do
79
+ run "#{try_sudo} mkdir -p #{backups_path} && #{try_sudo} chmod g+w #{backups_path}"
80
+ end
68
81
  end
69
82
 
70
83
  # --------------------------------------------
@@ -137,18 +150,46 @@ configuration.load do
137
150
  namespace :backup do
138
151
  desc "Perform a backup of web and database files"
139
152
  task :default do
140
- web
141
153
  db
154
+ web
142
155
  end
143
156
 
144
157
  desc "Perform a backup of web files"
145
158
  task :web, :roles => :web do
146
- puts "STUB: Backing up web server"
159
+ puts "Backing up web files (user uploaded content and previous release)"
160
+
161
+ if !backup_exclude.nil? && !backup_exclude.empty?
162
+ logger.debug "processing backup exclusions..."
163
+ backup_exclude.each do |pattern|
164
+ exclude_string << "--exclude '#{pattern}' "
165
+ end
166
+ logger.debug "Exclude string = #{exclude_string}"
167
+ end
168
+
169
+ # run "tar -cvpzf #{backups_path}/#{release_name}.tar.gz #{exclude_string} #{current_path} #{shared_path}"
170
+
171
+ # Copy the previous release to the /tmp directory
172
+ logger.debug "Copying previous release to the /tmp/#{release_name} directory"
173
+ run "rsync -avzrtpL #{exclude_string} #{current_path}/ /tmp/#{release_name}/"
174
+ # create the tarball of the previous release
175
+ set :archive_name, "release_B4_#{release_name}.tar.gz"
176
+ logger.debug "Creating a Tarball of the previous release in #{backups_path}/#{archive_name}"
177
+ run "cd /tmp && tar -cvpf - ./#{release_name}/ | gzip -c --best > #{backups_path}/#{archive_name}"
178
+
179
+ # remove the the temporary copy
180
+ logger.debug "Removing the tempory copy"
181
+ run "rm -rf /tmp/#{release_name}"
147
182
  end
148
183
 
149
184
  desc "Perform a backup of database files"
150
185
  task :db, :roles => :db do
151
- puts "STUB: Backing up db server"
186
+ puts "Backing up the database now and putting dump file in the previous release directory"
187
+ # define the filename (include the current_path so the dump file will be within the dirrectory)
188
+ filename = "#{current_path}/#{dbname}_dump-#{Time.now.to_s.gsub(/ /, "_")}.sql.gz"
189
+ # dump the database for the proper environment
190
+ run "mysqldump -u #{dbuser} -p #{dbname} | gzip -c --best > #{filename}" do |ch, stream, out|
191
+ ch.send_data "#{dbpass}\n" if out =~ /^Enter password:/
192
+ end
152
193
  end
153
194
  end
154
195
 
@@ -6,15 +6,6 @@ configuration = Capistrano::Configuration.respond_to?(:instance) ?
6
6
  Capistrano.configuration(:must_exist)
7
7
 
8
8
  configuration.load do
9
- # --------------------------------------------
10
- # Set some defaults
11
- # --------------------------------------------
12
- # Deploy to file path
13
- set(:deploy_to) { "/var/www/#{application}/#{stage}" }
14
-
15
- # Define your backups directory
16
- set(:backup_to) { "#{deploy_to}/backups/" }
17
-
18
9
  # --------------------------------------------
19
10
  # Calling our Methods
20
11
  # --------------------------------------------
@@ -64,4 +55,11 @@ configuration.load do
64
55
  end
65
56
  end
66
57
 
58
+ namespace :doctrine do
59
+ desc "Run Doctrine Migrations"
60
+ task :migrate, :except => { :no_release => true } do
61
+ puts "Running Doctrine Migrations..."
62
+ run "cd #{current_release} && ./scripts/doctrine-cli migrate"
63
+ end
64
+ end
67
65
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 13
9
- version: 0.0.13
8
+ - 15
9
+ version: 0.0.15
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-22 00:00:00 -06:00
17
+ date: 2010-12-28 00:00:00 -06:00
18
18
  default_executable:
19
19
  dependencies: []
20
20