capistrano-background 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 541e46741134115bf08cff688da43bc996db3876
4
- data.tar.gz: d79827f0ca558bfe4b6a317e29331aa00a84924d
3
+ metadata.gz: c7cf30a97b71b01cd667c9e7532d3df8bd7aa059
4
+ data.tar.gz: 2aeaeae84fd996c505c0b30365a558f3d037a2f7
5
5
  SHA512:
6
- metadata.gz: f18704b8af08ba2a88ec1320a3895b0991dd752096939958db8b1f80762dd92b51395d549420a10225e39100ec18a2f8420e1fd01c72820aa99745dde7b5d601
7
- data.tar.gz: a6a98eff21978c67ca95214a15187788526d6b8b7da59ec7a362adf63efb492a5f7668b0c5098b3f8c04319d20aea7d6511aed06363c33eed35d248b96fa0ced
6
+ metadata.gz: e1be3ae22efe69e4fc54b990f82eb00642e1fefd93ffbe91a2676c2a9a17d720cd904fd3947818a6b6cb630dfdd9d70fe10297d872933606449ee2a04776bc94
7
+ data.tar.gz: f7aa6be5d1509f1ee1aa89ad826bc37e6e76eb71695fcf51e7a51709c40279cc93a1fcf570d12a403dac6bab864bce0f21162960613ae8dcb72f4d29b88d21ac
@@ -1,3 +1,7 @@
1
+ # v0.1.3 / 2015-11-02
2
+
3
+ Termniate process correctly.
4
+
1
5
  # v0.1.2 / 2015-11-01
2
6
 
3
7
  Create project
data/README.md CHANGED
@@ -7,7 +7,8 @@ Run background process for capistrano.
7
7
  Add this line to your application's Gemfile:
8
8
 
9
9
  ```ruby
10
- gem 'capistrano-background'
10
+ gem 'capistrano-background', group: :development
11
+ gem 'terminate'
11
12
  ```
12
13
 
13
14
  And then execute:
@@ -27,7 +28,8 @@ Add your background processes.
27
28
  ```Ruby
28
29
  add_background_process({
29
30
  :id => :scheduler,
30
- :execute => [:rake, 'scheduler']
31
+ :execute => [:rake, 'scheduler'],
32
+ :timeout => 60 # kill process after waiting this time (seconds)
31
33
  })
32
34
  ```
33
35
  It will run `rake scheduler` in background when deploy. You can also use command:
@@ -17,7 +17,8 @@ Gem::Specification.new do |spec|
17
17
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
18
  spec.require_paths = ["lib"]
19
19
 
20
- spec.add_dependency "capistrano"
20
+ spec.add_dependency "capistrano", ">= 3.0.0"
21
+ spec.add_dependency "terminate", ">= 0.1.1"
21
22
 
22
23
  spec.add_development_dependency "bundler", "~> 1.10"
23
24
  spec.add_development_dependency "rake", "~> 10.0"
@@ -1,3 +1,4 @@
1
- if Gem::Specification.find_by_name('capistrano').version >= Gem::Version.new('3.0.0')
1
+ if defined? task
2
+ require 'capistrano/background/command'
2
3
  load File.expand_path('../tasks/background.rake', __FILE__)
3
4
  end
@@ -0,0 +1,20 @@
1
+ module SSHKit
2
+ class Command
3
+ alias_method :orig_in_background, :in_background
4
+
5
+ def in_background(&_block)
6
+ return yield unless options[:run_in_background]
7
+ pid_file = options[:pid_file]
8
+ if pid_file.nil?
9
+ orig_in_background(&_block)
10
+ else
11
+ env_str = environment_string
12
+ if env_str.nil?
13
+ sprintf("( nohup %s > /dev/null & \\echo $! > #{pid_file})", yield)
14
+ else
15
+ sprintf(" && ( #{env_str} nohup %s > /dev/null & \\echo $! > #{pid_file})", yield)
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -1,5 +1,5 @@
1
1
  module Capistrano
2
2
  module Background
3
- VERSION = "0.1.2"
3
+ VERSION = "0.1.3"
4
4
  end
5
5
  end
@@ -1,24 +1,3 @@
1
- module SSHKit
2
- class Command
3
- alias_method :orig_in_background, :in_background
4
-
5
- def in_background(&_block)
6
- return yield unless options[:run_in_background]
7
- pid_file = options[:pid_file]
8
- if pid_file.nil?
9
- orig_in_background(&_block)
10
- else
11
- env_str = environment_string
12
- if env_str.nil?
13
- sprintf("( nohup %s > /dev/null & \\echo $! > #{pid_file})", yield)
14
- else
15
- sprintf(" && ( #{env_str} nohup %s > /dev/null & \\echo $! > #{pid_file})", yield)
16
- end
17
- end
18
- end
19
- end
20
- end
21
-
22
1
  namespace :load do
23
2
  task :defaults do
24
3
  set :background_default_hooks, true
@@ -43,16 +22,16 @@ namespace :background do
43
22
  end
44
23
 
45
24
  def pid_process_exists?(pid_file)
46
- file_exists?(pid_file) and test(*("kill -0 $( cat #{pid_file} )").split(' '))
25
+ file_exists?(pid_file) && test(*%{kill -0 `cat #{pid_file}`})
47
26
  end
48
27
 
49
28
  def file_exists?(file)
50
- test(*("[ -f #{file} ]").split(' '))
29
+ test(*%{[ -f #{file} ]})
51
30
  end
52
31
 
53
32
  def quiet_process(pid_file)
54
33
  if file_exists? pid_file
55
- background "kill -USR1 `cat #{pid_file}`"
34
+ background "kill -TERM `cat #{pid_file}`"
56
35
  end
57
36
  end
58
37
 
@@ -65,9 +44,11 @@ namespace :background do
65
44
  end
66
45
  end
67
46
 
68
- def stop_process(pid_file)
47
+ def stop_process(pid_file, timeout)
69
48
  if file_exists? pid_file
70
- background "kill -TERM `cat #{pid_file}`"
49
+ if pid_process_exists? pid_file
50
+ rake "terminate `cat #{pid_file}` -- -t #{timeout}"
51
+ end
71
52
  execute "rm #{pid_file}"
72
53
  end
73
54
  end
@@ -99,7 +80,7 @@ namespace :background do
99
80
  role = options[:role] || :app
100
81
  on roles role do
101
82
  within release_path do
102
- stop_process(get_pid_file(options))
83
+ stop_process(get_pid_file(options), options[:timeout] || 60)
103
84
  end
104
85
  end
105
86
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano-background
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chen Yi-Cyuan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-01 00:00:00.000000000 Z
11
+ date: 2015-11-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capistrano
@@ -16,14 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 3.0.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: '0'
26
+ version: 3.0.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: terminate
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 0.1.1
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 0.1.1
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -86,6 +100,7 @@ files:
86
100
  - capistrano-background.gemspec
87
101
  - lib/capistrano-background.rb
88
102
  - lib/capistrano/background.rb
103
+ - lib/capistrano/background/command.rb
89
104
  - lib/capistrano/background/version.rb
90
105
  - lib/capistrano/tasks/background.rake
91
106
  homepage: https://github.com/emn178/capistrano-background.git