capistrano-unicorn 0.1.4 → 0.1.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/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require 'bundler'
2
+ require 'bundler/gem_tasks'
@@ -11,6 +11,12 @@ module CapistranoUnicorn
11
11
  def remote_file_exists?(full_path)
12
12
  'true' == capture("if [ -e #{full_path} ]; then echo 'true'; fi").strip
13
13
  end
14
+
15
+ # Check if process is running
16
+ #
17
+ def process_exists?(pid_file)
18
+ capture("ps -p $(cat #{pid_file}) ; true").strip.split("\n").size == 2
19
+ end
14
20
 
15
21
  # Set unicorn vars
16
22
  #
@@ -21,6 +27,15 @@ module CapistranoUnicorn
21
27
  namespace :unicorn do
22
28
  desc 'Start Unicorn'
23
29
  task :start, :roles => :app, :except => {:no_release => true} do
30
+ if remote_file_exists?(unicorn_pid)
31
+ if process_exists?(unicorn_pid)
32
+ logger.important("Unicorn is already running!", "Unicorn")
33
+ next
34
+ else
35
+ run "rm #{unicorn_pid}"
36
+ end
37
+ end
38
+
24
39
  config_path = "#{current_path}/config/unicorn/#{unicorn_env}.rb"
25
40
  if remote_file_exists?(config_path)
26
41
  logger.important("Starting...", "Unicorn")
@@ -33,8 +48,13 @@ module CapistranoUnicorn
33
48
  desc 'Stop Unicorn'
34
49
  task :stop, :roles => :app, :except => {:no_release => true} do
35
50
  if remote_file_exists?(unicorn_pid)
36
- logger.important("Stopping...", "Unicorn")
37
- run "#{try_sudo} kill `cat #{unicorn_pid}`"
51
+ if process_exists?(unicorn_pid)
52
+ logger.important("Stopping...", "Unicorn")
53
+ run "#{try_sudo} kill `cat #{unicorn_pid}`"
54
+ else
55
+ run "rm #{unicorn_pid}"
56
+ logger.important("Unicorn is not running.", "Unicorn")
57
+ end
38
58
  else
39
59
  logger.important("No PIDs found. Check if unicorn is running.", "Unicorn")
40
60
  end
@@ -43,8 +63,13 @@ module CapistranoUnicorn
43
63
  desc 'Unicorn graceful shutdown'
44
64
  task :graceful_stop, :roles => :app, :except => {:no_release => true} do
45
65
  if remote_file_exists?(unicorn_pid)
46
- logger.important("Stopping...", "Unicorn")
47
- run "#{try_sudo} kill -s QUIT `cat #{unicorn_pid}`"
66
+ if process_exists?(unicorn_pid)
67
+ logger.important("Stopping...", "Unicorn")
68
+ run "#{try_sudo} kill -s QUIT `cat #{unicorn_pid}`"
69
+ else
70
+ run "rm #{unicorn_pid}"
71
+ logger.important("Unicorn is not running.", "Unicorn")
72
+ end
48
73
  else
49
74
  logger.important("No PIDs found. Check if unicorn is running.", "Unicorn")
50
75
  end
@@ -1,5 +1,5 @@
1
1
  module CapistranoUnicorn
2
2
  unless defined?(::CapistranoUnicorn::VERSION)
3
- VERSION = "0.1.4".freeze
3
+ VERSION = "0.1.5".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-unicorn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-19 00:00:00.000000000Z
12
+ date: 2012-02-04 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: capistrano
16
- requirement: &2160139940 !ruby/object:Gem::Requirement
16
+ requirement: &2165055020 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2160139940
24
+ version_requirements: *2165055020
25
25
  description: Capistrano plugin that integrates Unicorn server tasks.
26
26
  email: dan.sosedoff@gmail.com
27
27
  executables: []
@@ -31,6 +31,7 @@ files:
31
31
  - .gitignore
32
32
  - Gemfile
33
33
  - README.md
34
+ - Rakefile
34
35
  - capistrano-unicorn.gemspec
35
36
  - examples/rails3.rb
36
37
  - lib/capistrano-unicorn.rb