flame_server_toys 0.2.2 → 0.3.0

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
  SHA256:
3
- metadata.gz: 7f45aba613713cf69e1168a2ee6dac2391d22f034f707ac8651445d284c37c6a
4
- data.tar.gz: e379aac82ee993b8469031b147ba217f83bd3d92f85eba7608c4e8bf53a6dcea
3
+ metadata.gz: 7430614acb1e7abe6a1f8bcaa9c7e281ba077a3cb0288db3ce559f8021100edf
4
+ data.tar.gz: fda0da85de411f6aed5df4d19289d0bdf3d8047500c776ee0ef8b94f69a16cf5
5
5
  SHA512:
6
- metadata.gz: 02ca275f76b08a1a388a8e1e14bcf25ac0508dde5978fe5744229e8f5e340bb9d42716fb0fa6cf52031b99785335546f5e6cdafb942b739eb74b9fc8e143838e
7
- data.tar.gz: 779be44bf684f2351ecbc1e4a59ab9dc7bcfdd05b9599dd2af43e402ba84c5d97bba6b04dc7f6bf7a822a45f67e0cb270840e45092937494801343f338f97222
6
+ metadata.gz: 6829b8e3cdfd47b6230e40fc4faca0cb396f228405c95a9ba2f95f683922f81155ac6e6481b8d7301f68ab89483940524f8046d83366e6d805e7c483d58fa5c1
7
+ data.tar.gz: b8160d1cd665669a22e7a8bdf8d007d113eeab6c73af839b257b3f66f098272642f3d1f33656f2eed47d2f9588381727e846e4656d78c0a7a43d46626c99e810
@@ -2,8 +2,12 @@
2
2
 
3
3
  ## master (unreleased)
4
4
 
5
+ ## 0.3.0 (2020-12-02)
6
+
5
7
  ## 0.2.2 (2020-09-23)
6
8
 
9
+ * Fix `status` command.
10
+
7
11
  ## 0.2.1 (2020-08-24)
8
12
 
9
13
  * Fix system calls.
data/README.md CHANGED
@@ -45,7 +45,8 @@ expand FlameServerToys::Template,
45
45
  ```
46
46
 
47
47
  On `start` and `restart` commands in `development` environment there will be spawned
48
- [Filewatchers](https://github.com/filewatcher/filewatcher) from `filewatcher.yaml` file.
48
+ `Filewatcher`s from `filewatcher.yaml` file
49
+ via [`filewatcher-matrix`](https://github.com/filewatcher/filewatcher-matrix).
49
50
 
50
51
  ## Development
51
52
 
@@ -3,8 +3,6 @@
3
3
  require 'memery'
4
4
  require 'yaml'
5
5
 
6
- require_relative '_pids_file'
7
-
8
6
  module FlameServerToys
9
7
  class Template
10
8
  ## Base class for toys
@@ -33,11 +31,6 @@ module FlameServerToys
33
31
  super sh_command(command), **options
34
32
  end
35
33
 
36
- def sh_spawn(command, print: true)
37
- puts "spawn #{command}" if print
38
- spawn sh_command(command), pgroup: true
39
- end
40
-
41
34
  def sh_command(command)
42
35
  require 'shellwords'
43
36
 
@@ -51,11 +44,6 @@ module FlameServerToys
51
44
  sh "#{context_directory}/exe/setup/ruby.sh"
52
45
  sh("#{context_directory}/exe/setup/node.sh") if %i[start restart].include?(command)
53
46
 
54
- if %i[stop restart].include?(command)
55
- filewatcher_pids_file = pids_file_class.new(:filewatcher)
56
- filewatcher_pids_file.kill_each.delete
57
- end
58
-
59
47
  web_server(command)
60
48
  end
61
49
 
@@ -77,29 +65,15 @@ module FlameServerToys
77
65
  spawn_development_filewatchers
78
66
 
79
67
  puma_command File.exist?(@config[:server][:puma_pid_file]) ? 'restart' : 'start'
80
- rescue SystemExit, Interrupt => e
81
- pids_file_class.new(:filewatcher).kill_each.delete
82
-
83
- raise e
84
68
  end
85
69
 
86
70
  def spawn_development_filewatchers
87
- development_filewatchers =
88
- YAML.load_file("#{context_directory}/filewatchers.yaml").map do |args|
89
- filewatcher_command args[:pattern], args[:command], exclude: args[:exclude]
90
- end
91
-
92
- filewatcher_pids = development_filewatchers.map { |command| sh_spawn command }
71
+ require 'filewatcher/matrix'
93
72
 
94
- pids_file_class.new(:filewatcher, filewatcher_pids).dump
95
- end
96
-
97
- def filewatcher_command(pattern, execute, exclude: nil)
98
- ## Don't use `bundle exec`, it's already required by `toys`
99
- ## https://github.com/dazuma/toys/issues/65
100
- <<-CMD.split.join(' ')
101
- filewatcher #{"--exclude '#{exclude}'" unless exclude.nil?} '#{pattern}' '#{execute}'
102
- CMD
73
+ Thread.new do
74
+ matrix = Filewatcher::Matrix.new("#{context_directory}/filewatchers.yaml")
75
+ matrix.start
76
+ end
103
77
  end
104
78
 
105
79
  def waiting_mailing_lock
@@ -109,15 +83,6 @@ module FlameServerToys
109
83
  sleep 1
110
84
  end
111
85
  end
112
-
113
- memoize def pids_file_class
114
- subclass = Class.new(PidsFile)
115
- pids_dir = @config[:pids_dir]
116
- subclass.class_exec do
117
- self.pids_dir = pids_dir
118
- end
119
- subclass
120
- end
121
86
  end
122
87
  end
123
88
  end
@@ -9,10 +9,6 @@ module FlameServerToys
9
9
  to_run do
10
10
  @config = template.config
11
11
 
12
- puts
13
- puts 'Filewatcher:'
14
- puts
15
- ps_with_grep '[f]ilewatcher'
16
12
  puts
17
13
  puts 'Puma:'
18
14
  puts
@@ -10,8 +10,6 @@ module FlameServerToys
10
10
  @config = template.config
11
11
 
12
12
  server :stop
13
-
14
- pids_file_class.new(:filewatcher).kill_each.delete
15
13
  end
16
14
  end
17
15
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FlameServerToys
4
- VERSION = '0.2.2'
4
+ VERSION = '0.3.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flame_server_toys
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Popov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-23 00:00:00.000000000 Z
11
+ date: 2020-12-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: alt_memery
@@ -25,19 +25,19 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '2.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: filewatcher-cli
28
+ name: filewatcher-matrix
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 1.0.0.beta1
33
+ version: 0.1.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 1.0.0.beta1
40
+ version: 0.1.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: gorilla_patch
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 0.4.0
103
+ version: 0.5.0
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 0.4.0
110
+ version: 0.5.0
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: toys
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -156,28 +156,28 @@ dependencies:
156
156
  requirements:
157
157
  - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: 0.19.0
159
+ version: 0.20.0
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
- version: 0.19.0
166
+ version: 0.20.0
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: rubocop
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
171
  - - "~>"
172
172
  - !ruby/object:Gem::Version
173
- version: 0.91.0
173
+ version: '1.0'
174
174
  type: :development
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
178
  - - "~>"
179
179
  - !ruby/object:Gem::Version
180
- version: 0.91.0
180
+ version: '1.0'
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: rubocop-performance
183
183
  requirement: !ruby/object:Gem::Requirement
@@ -198,14 +198,14 @@ dependencies:
198
198
  requirements:
199
199
  - - "~>"
200
200
  - !ruby/object:Gem::Version
201
- version: '1.0'
201
+ version: '2.0'
202
202
  type: :development
203
203
  prerelease: false
204
204
  version_requirements: !ruby/object:Gem::Requirement
205
205
  requirements:
206
206
  - - "~>"
207
207
  - !ruby/object:Gem::Version
208
- version: '1.0'
208
+ version: '2.0'
209
209
  description: 'Toys for Flame web application server management, like start, stop,
210
210
  restart, etc.
211
211
 
@@ -222,7 +222,6 @@ files:
222
222
  - lib/flame_server_toys.rb
223
223
  - lib/flame_server_toys/template.rb
224
224
  - lib/flame_server_toys/template/_base.rb
225
- - lib/flame_server_toys/template/_pids_file.rb
226
225
  - lib/flame_server_toys/template/monitor.rb
227
226
  - lib/flame_server_toys/template/phased_restart.rb
228
227
  - lib/flame_server_toys/template/restart.rb
@@ -252,7 +251,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
252
251
  - !ruby/object:Gem::Version
253
252
  version: '0'
254
253
  requirements: []
255
- rubygems_version: 3.1.2
254
+ rubygems_version: 3.1.4
256
255
  signing_key:
257
256
  specification_version: 4
258
257
  summary: Toys for Flame web application server management
@@ -1,53 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'English'
4
- require 'fileutils'
5
-
6
- module FlameServerToys
7
- class Template
8
- ## Class for pids files
9
- class PidsFile
10
- class << self
11
- ## It will be set in the Base template from received config
12
- attr_accessor :pids_dir
13
- end
14
-
15
- def initialize(name, *pids)
16
- @file = File.join self.class.pids_dir, "#{name}.pids"
17
- @pids = pids.any? ? pids : read
18
- end
19
-
20
- def dump(pids = @pids)
21
- FileUtils.mkdir_p self.class.pids_dir
22
- puts "PidsFile dump : #{pids} => #{@file}"
23
- File.write @file, pids.join($RS)
24
- end
25
-
26
- def read
27
- return unless File.exist?(@file)
28
-
29
- @pids = File.read(@file).split($RS).map(&:to_i)
30
- puts "PidsFile read : #{@pids}"
31
- @pids
32
- end
33
-
34
- def kill_each(pids = @pids)
35
- Array(pids).each do |pid|
36
- puts "PidsFile kill : #{pid}"
37
- Process.kill('TERM', -Process.getpgid(pid))
38
- rescue Errno::ESRCH
39
- puts "Process #{pid} doesn't exist"
40
- end
41
- self
42
- end
43
-
44
- def delete
45
- return unless File.exist?(@file)
46
-
47
- File.delete @file
48
- end
49
- end
50
-
51
- private_constant :PidsFile
52
- end
53
- end