capistrano-maintenance 0.0.4 → 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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1a51b5180a4cd308b6e52df9e0ac26394757f45c
4
- data.tar.gz: 68f9ef18a277466632b508c19ee274b9a71ccb6a
3
+ metadata.gz: bfa25fd8964b5920d1f82d422f2671eeb7dadd36
4
+ data.tar.gz: 569d7a6c4610b3f245701ebefce92837b5e2ad8c
5
5
  SHA512:
6
- metadata.gz: 6decbba0f3ca4bc85b55edfd917e6a0cd9417cdf48b568156dbd7e35c0e5e67861f7373236178f657553636ae4ef6bf95e5913616222bc636e07ab427b9e40b0
7
- data.tar.gz: 1cd36c78fce821e39cdeb33e1114a5731f4f39ad65b2abc76728a22acd965668db2ba8ad3029b0cd1054f65f4da5f2dc75b63b742dbebad73cb55f516e401099
6
+ metadata.gz: 0579666e4ec68db548a31483c4f23e66e7ae42a1c650eb4c73b20e5bd00c6a885682e339fd997c1f4abd8511dd0c2bba5d5ec0d15fd9e58b775d1e4ebf7bcf43
7
+ data.tar.gz: d57033fe692fb3e19b2e224ab053a4d10de5aac12af5cb4748d86aaef2d5d6440c0725e837de713bf4fd1af944bcc211e3ddabc97ff869a409c11faa0ad6ee6e
data/README.md CHANGED
@@ -1,53 +1,79 @@
1
- Capistrano Maintenance Extension
2
- =================================
1
+ Capistrano 2 Maintenance Extension
2
+ ==================================
3
3
 
4
- This gem simply offers the recently removed `deploy:web:disable` and `deploy:web:enable` tasks to your Capistrano deployment.
4
+ This gem simply offers the recently removed `deploy:web:disable` and `deploy:web:enable` tasks to your Capistrano 2 deployment.
5
+
6
+ **NOTE** This version only works with Capistrano 2.x. For a Capistrano 3 compatible version please use [the official extension](https://github.com/capistrano/maintenance).
5
7
 
6
8
  Usage
7
9
  -----
8
10
 
9
11
  Install the gem via rubygems:
10
12
 
11
- gem install capistrano-maintenance
13
+ ```sh
14
+ gem install capistrano-maintenance --version=0.0.5
15
+ ```
16
+
17
+ or use bundler:
18
+
19
+ ```ruby
20
+ # Gemfile
21
+ gem 'capistrano-maintenance', '0.0.5', group: 'development'
22
+ ```
23
+
24
+ ```sh
25
+ bundle install
26
+ ```
12
27
 
13
28
  And put this line into your deploy.rb file:
14
29
 
15
- require 'capistrano/maintenance'
30
+ ```ruby
31
+ require 'capistrano/maintenance'
32
+ ```
16
33
 
17
34
  Now, you can disable the web:
18
35
 
19
- cap deploy:web:disable
36
+ ```sh
37
+ cap deploy:web:disable
38
+ ```
20
39
 
21
40
  You can also specify a string to specify reason and how long it is until:
22
41
 
23
- cap deploy:web:disable REASON="For server upgrades" UNTIL="3AM EST"
24
-
42
+ ```sh
43
+ cap deploy:web:disable REASON="For server upgrades" UNTIL="3AM EST"
44
+ ```
25
45
 
26
46
  When maintenance is done, you can enable the web:
27
47
 
28
- cap deploy:web:enable
48
+ ```sh
49
+ cap deploy:web:enable
50
+ ```
29
51
 
30
52
  If you are using [multistage capistrano](https://github.com/capistrano/capistrano/wiki/2.x-Multistage-Extension), you'll also need to include the stage before `deploy:web:disable` and `deploy:web:enable`:
31
53
 
32
- cap production deploy:web:disable
33
- cap production deploy:web:enable
54
+ ```sh
55
+ cap production deploy:web:disable
56
+ cap production deploy:web:enable
57
+ ```
34
58
 
35
59
  Configuration
36
60
  -------------
37
61
 
38
62
  Everything should work out of the box general, but there are some additional adjustments you can make in your deploy.rb.
39
63
 
40
- # change the default filename from maintenance.html to disabled.html
41
- set :maintenance_basename, 'disabled'
64
+ ```ruby
65
+ # change the default filename from maintenance.html to disabled.html
66
+ set :maintenance_basename, 'disabled'
42
67
 
43
- # change default directory from default of #{shared_path}/system
44
- set :maintenance_dirname, "#{shared_path}/public/system"
68
+ # change default directory from default of #{shared_path}/system
69
+ set :maintenance_dirname, "#{shared_path}/public/system"
45
70
 
46
- # use local template instead of included one with capistrano-maintenance
47
- set :maintenance_template_path, 'app/views/maintenance.html.erb'
71
+ # use local template instead of included one with capistrano-maintenance
72
+ set :maintenance_template_path, 'app/views/maintenance.html.erb'
48
73
 
49
- # disable the warning on how to configure your server
50
- set :maintenance_config_warning, false
74
+ # disable the warning on how to configure your server
75
+ set :maintenance_config_warning, false
76
+ ```
51
77
 
52
78
  For your custom maintenance template, you have access to the following variables, if they're defined:
53
79
 
@@ -1,6 +1,5 @@
1
1
  # encoding: utf-8
2
2
  $:.push File.expand_path("../lib", __FILE__)
3
- require "capistrano"
4
3
  require "capistrano/maintenance/version"
5
4
 
6
5
  Gem::Specification.new do |s|
@@ -17,5 +16,5 @@ Gem::Specification.new do |s|
17
16
  s.files = `git ls-files`.split("\n")
18
17
  s.require_paths = ["lib"]
19
18
 
20
- s.add_dependency 'capistrano', ['>= 2.0.0']
19
+ s.add_dependency 'capistrano', ['~> 2.0']
21
20
  end
@@ -1,3 +1,5 @@
1
- module Capistrano::Maintenance
2
- VERSION = "0.0.4"
1
+ module Capistrano
2
+ module Maintenance
3
+ VERSION = "0.0.5"
4
+ end
3
5
  end
@@ -1,95 +1,92 @@
1
1
  require 'capistrano'
2
2
 
3
- module Capistrano::Maintenance
4
-
5
- def self.load_into(configuration)
6
- configuration.load do
7
-
8
- _cset(:maintenance_dirname) { "#{shared_path}/system" }
9
- _cset :maintenance_basename, "maintenance"
10
- _cset(:maintenance_template_path) { File.join(File.dirname(__FILE__), "templates", "maintenance.html.erb") }
11
-
12
- namespace :deploy do
13
-
14
- namespace :web do
15
-
16
- desc <<-DESC
17
- Present a maintenance page to visitors. Disables your application's web \
18
- interface by writing a "#{maintenance_basename}.html" file to each web server. The \
19
- servers must be configured to detect the presence of this file, and if \
20
- it is present, always display it instead of performing the request.
21
-
22
- By default, the maintenance page will just say the site is down for \
23
- "maintenance", and will be back "shortly", but you can customize the \
24
- page by specifying the REASON and UNTIL environment variables:
25
-
26
- $ cap deploy:web:disable \\
27
- REASON="hardware upgrade" \\
28
- UNTIL="12pm Central Time"
29
-
30
- You can use a different template for the maintenance page by setting the \
31
- :maintenance_template_path variable in your deploy.rb file. The template file \
32
- should either be a plaintext or an erb file.
33
-
34
- Further customization will require that you write your own task.
35
- DESC
36
- task :disable, :roles => :web, :except => { :no_release => true } do
37
- require 'erb'
38
- on_rollback { run "rm -f #{maintenance_dirname}/#{maintenance_basename}.html" }
39
-
40
- if fetch(:maintenance_config_warning, true)
41
- warn <<-EOHTACCESS
42
-
43
- # Please add something like this to your site's Apache htaccess to redirect users to the maintenance page.
44
- # More Info: http://www.shiftcommathree.com/articles/make-your-rails-maintenance-page-respond-with-a-503
45
-
46
- ErrorDocument 503 /system/#{maintenance_basename}.html
47
- RewriteEngine On
48
- RewriteCond %{REQUEST_URI} !\.(css|gif|jpg|png)$
49
- RewriteCond %{DOCUMENT_ROOT}/system/#{maintenance_basename}.html -f
50
- RewriteCond %{SCRIPT_FILENAME} !#{maintenance_basename}.html
51
- RewriteRule ^.*$ - [redirect=503,last]
52
-
53
- # Or if you are using Nginx add this to your server config:
54
-
55
- if (-f $document_root/system/maintenance.html) {
56
- return 503;
57
- }
58
- error_page 503 @maintenance;
59
- location @maintenance {
60
- rewrite ^(.*)$ /system/maintenance.html last;
61
- break;
62
- }
63
- EOHTACCESS
64
- end
3
+ module Capistrano
4
+ module Maintenance
65
5
 
66
- reason = ENV['REASON']
67
- deadline = ENV['UNTIL']
6
+ def self.load_into(configuration)
7
+ configuration.load do
68
8
 
69
- template = File.read(maintenance_template_path)
70
- result = ERB.new(template).result(binding)
9
+ _cset(:maintenance_dirname) { "#{shared_path}/system" }
10
+ _cset :maintenance_basename, "maintenance"
11
+ _cset(:maintenance_template_path) { File.join(File.dirname(__FILE__), "templates", "maintenance.html.erb") }
71
12
 
72
- put result, "#{maintenance_dirname}/#{maintenance_basename}.html", :mode => 0644
73
- end
13
+ namespace :deploy do
74
14
 
75
- desc <<-DESC
76
- Makes the application web-accessible again. Removes the \
77
- "#{maintenance_basename}.html" page generated by deploy:web:disable, which (if your \
78
- web servers are configured correctly) will make your application \
79
- web-accessible again.
80
- DESC
81
- task :enable, :roles => :web, :except => { :no_release => true } do
82
- run "rm -f #{maintenance_dirname}/#{maintenance_basename}.html"
83
- end
15
+ namespace :web do
84
16
 
85
- end
17
+ desc <<-DESC
18
+ Present a maintenance page to visitors. Disables your application's web \
19
+ interface by writing a "#{maintenance_basename}.html" file to each web server. The \
20
+ servers must be configured to detect the presence of this file, and if \
21
+ it is present, always display it instead of performing the request.
86
22
 
87
- end
23
+ By default, the maintenance page will just say the site is down for \
24
+ "maintenance", and will be back "shortly", but you can customize the \
25
+ page by specifying the REASON and UNTIL environment variables:
88
26
 
89
- end
27
+ $ cap deploy:web:disable \\
28
+ REASON="hardware upgrade" \\
29
+ UNTIL="12pm Central Time"
90
30
 
91
- end
31
+ You can use a different template for the maintenance page by setting the \
32
+ :maintenance_template_path variable in your deploy.rb file. The template file \
33
+ should either be a plaintext or an erb file.
34
+
35
+ Further customization will require that you write your own task.
36
+ DESC
37
+ task :disable, :roles => :web, :except => { :no_release => true } do
38
+ require 'erb'
39
+ on_rollback { run "rm -f #{maintenance_dirname}/#{maintenance_basename}.html" }
40
+
41
+ if fetch(:maintenance_config_warning, true)
42
+ warn <<-EOHTACCESS
43
+
44
+ # Please add something like this to your site's Apache htaccess to redirect users to the maintenance page.
45
+ # More Info: http://www.shiftcommathree.com/articles/make-your-rails-maintenance-page-respond-with-a-503
46
+
47
+ ErrorDocument 503 /system/#{maintenance_basename}.html
48
+ RewriteEngine On
49
+ RewriteCond %{REQUEST_URI} !\.(css|gif|jpg|png)$
50
+ RewriteCond %{DOCUMENT_ROOT}/system/#{maintenance_basename}.html -f
51
+ RewriteCond %{SCRIPT_FILENAME} !#{maintenance_basename}.html
52
+ RewriteRule ^.*$ - [redirect=503,last]
53
+
54
+ # Or if you are using Nginx add this to your server config:
92
55
 
56
+ if (-f $document_root/system/maintenance.html) {
57
+ return 503;
58
+ }
59
+ error_page 503 @maintenance;
60
+ location @maintenance {
61
+ rewrite ^(.*)$ /system/maintenance.html last;
62
+ break;
63
+ }
64
+ EOHTACCESS
65
+ end
66
+
67
+ reason = ENV['REASON']
68
+ deadline = ENV['UNTIL']
69
+
70
+ template = File.read(maintenance_template_path)
71
+ result = ERB.new(template).result(binding)
72
+
73
+ put result, "#{maintenance_dirname}/#{maintenance_basename}.html", :mode => 0644
74
+ end
75
+
76
+ desc <<-DESC
77
+ Makes the application web-accessible again. Removes the \
78
+ "#{maintenance_basename}.html" page generated by deploy:web:disable, which (if your \
79
+ web servers are configured correctly) will make your application \
80
+ web-accessible again.
81
+ DESC
82
+ task :enable, :roles => :web, :except => { :no_release => true } do
83
+ run "rm -f #{maintenance_dirname}/#{maintenance_basename}.html"
84
+ end
85
+ end
86
+ end
87
+ end
88
+ end
89
+ end
93
90
  end
94
91
 
95
92
  if Capistrano::Configuration.instance
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-maintenance
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas von Deyen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-07-31 00:00:00.000000000 Z
11
+ date: 2015-05-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capistrano
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 2.0.0
19
+ version: '2.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 2.0.0
26
+ version: '2.0'
27
27
  description: The deploy:web tasks where removed from Capistrano core. This extension
28
28
  brings them back.
29
29
  email: tvd@magiclabs.de
@@ -31,7 +31,7 @@ executables: []
31
31
  extensions: []
32
32
  extra_rdoc_files: []
33
33
  files:
34
- - .gitignore
34
+ - ".gitignore"
35
35
  - Gemfile
36
36
  - README.md
37
37
  - Rakefile
@@ -49,19 +49,18 @@ require_paths:
49
49
  - lib
50
50
  required_ruby_version: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  required_rubygems_version: !ruby/object:Gem::Requirement
56
56
  requirements:
57
- - - '>='
57
+ - - ">="
58
58
  - !ruby/object:Gem::Version
59
59
  version: '0'
60
60
  requirements: []
61
61
  rubyforge_project:
62
- rubygems_version: 2.0.6
62
+ rubygems_version: 2.4.6
63
63
  signing_key:
64
64
  specification_version: 4
65
65
  summary: Offers deploy:web:disable and deploy:web:enable tasks for Capistrano.
66
66
  test_files: []
67
- has_rdoc: