capistrano3-pushr 1.0.0

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 321427436b3d2e2bd3edbd7842db5889764a59a6
4
+ data.tar.gz: 696848033b90b43799f70a44c46aa9e82e7c6e72
5
+ SHA512:
6
+ metadata.gz: bba2dbd43f3f260a9a61db9544d4f5fc70200bd05847b856179cf0b578a24eee59f16ac848c634748a8ff562628ad8b7d762610e5ac8d2dbfabddf55443da332
7
+ data.tar.gz: 395fb13d7f00767e122d73f5200a62b4c2548d14e14c361ca8eabfba55d790c3c017bdcb2184ad26a80aa4e9272d63147a455407d99bff40734037c61e52f7b2
@@ -0,0 +1,5 @@
1
+ module Capistrano
2
+ module Pushr
3
+ VERSION = '1.0.0'
4
+ end
5
+ end
@@ -0,0 +1 @@
1
+ load File.expand_path('../tasks/pushr.rake', __FILE__)
@@ -0,0 +1,111 @@
1
+ namespace :load do
2
+ task :defaults do
3
+ set :pushr_default_hooks, -> { true }
4
+
5
+ set :pushr_pid, -> { File.join shared_path, 'tmp', 'pids', 'pushr.pid' }
6
+ end
7
+ end
8
+
9
+ namespace :deploy do
10
+ before :starting, :check_pushr_hooks do
11
+ invoke 'pushr:add_default_hooks' if fetch(:pushr_default_hooks)
12
+ end
13
+
14
+ after :publishing, :restart_pushr do
15
+ invoke 'pushr:restart' if fetch(:pushr_default_hooks)
16
+ end
17
+ end
18
+
19
+ namespace :pushr do
20
+ desc 'Add default Pushr hooks.'
21
+ task :add_default_hooks do
22
+ after 'deploy:starting', 'pushr:quiet'
23
+ after 'deploy:updated', 'pushr:stop'
24
+ after 'deploy:reverted', 'pushr:stop'
25
+ after 'deploy:published', 'pushr:start'
26
+ end
27
+
28
+ desc 'Quiet Pushr daemon (stop processing new stuff).'
29
+ task :quiet do
30
+ on roles(fetch(:pushr_roles, :all)) do
31
+ stop_pushr 'USR1'
32
+ end
33
+ end
34
+
35
+ desc 'Stop Pushr daemon.'
36
+ task :stop do
37
+ on roles(fetch(:pushr_roles, :all)) do
38
+ stop_pushr 'TERM'
39
+ end
40
+ end
41
+
42
+ desc 'Start Pushr daemon.'
43
+ task :start do
44
+ on roles(fetch(:pushr_roles, :all)) do
45
+ start_pushr
46
+ end
47
+ end
48
+
49
+ desc 'Restart Pushr daemon.'
50
+ task :restart do
51
+ invoke 'pushr:stop'
52
+ invoke 'pushr:start'
53
+ end
54
+
55
+ desc 'Pushr version.'
56
+ task :version do
57
+ on roles(fetch(:pushr_roles, :all)) do
58
+ print_version
59
+ end
60
+ end
61
+
62
+ desc 'Pushr status.'
63
+ task :status do
64
+ on roles(fetch(:pushr_roles, :all)) do
65
+ status_message = pid_process_exists? ? "running with pid #{pid}" : 'not running'
66
+ puts "Pushr is #{status_message}!"
67
+ end
68
+ end
69
+
70
+ ###
71
+
72
+ def pid
73
+ capture pid_command
74
+ end
75
+
76
+ def pid_command
77
+ "cat #{fetch(:pushr_pid)}"
78
+ end
79
+
80
+ def pid_file_exists?
81
+ test(*("[ -f #{fetch(:pushr_pid)} ]").split(' '))
82
+ end
83
+
84
+ def pid_process_exists?
85
+ pid_file_exists? && test(*("kill -0 `#{pid_command}`").split(' '))
86
+ end
87
+
88
+ def stop_pushr(signal)
89
+ return unless test("[ -d #{release_path} ]") && pid_process_exists?
90
+
91
+ within release_path do
92
+ puts 'Stopping Pushr...'
93
+ execute "kill -#{signal} `#{pid_command}`"
94
+ puts 'done!'
95
+ end
96
+ end
97
+
98
+ def start_pushr
99
+ within release_path do
100
+ puts 'Starting Pushr...'
101
+ execute 'bundle', 'exec', 'pushr', '--pid-file', fetch(:pushr_pid)
102
+ puts 'done!'
103
+ end
104
+ end
105
+
106
+ def print_version
107
+ within release_path do
108
+ puts capture('bundle', 'exec', 'pushr', '--version')
109
+ end
110
+ end
111
+ end
metadata ADDED
@@ -0,0 +1,95 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: capistrano3-pushr
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Zsofia Balogh
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-01-06 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: capistrano
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.1'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 3.1.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '3.1'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 3.1.0
33
+ - !ruby/object:Gem::Dependency
34
+ name: pushr-core
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: 1.0.2
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 1.0.2
47
+ - !ruby/object:Gem::Dependency
48
+ name: rake
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ description: Pushr specific Capistrano tasks
62
+ email:
63
+ - zsofia.balogh@supercharge.io
64
+ executables: []
65
+ extensions: []
66
+ extra_rdoc_files: []
67
+ files:
68
+ - lib/capistrano/pushr.rb
69
+ - lib/capistrano/pushr/version.rb
70
+ - lib/capistrano/tasks/pushr.rake
71
+ homepage: https://github.com/team-supercharge/capistrano3-pushr
72
+ licenses:
73
+ - GPL-3.0
74
+ metadata: {}
75
+ post_install_message:
76
+ rdoc_options: []
77
+ require_paths:
78
+ - lib
79
+ required_ruby_version: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ required_rubygems_version: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ requirements: []
90
+ rubyforge_project:
91
+ rubygems_version: 2.4.8
92
+ signing_key:
93
+ specification_version: 4
94
+ summary: Pushr specific Capistrano tasks
95
+ test_files: []