config_skeleton 0.0.0.1.ENOTAG → 0.3.1

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: 001b8856fcc1b06142090ff8f3318a247b5bc810c438acb42db607a11b909151
4
- data.tar.gz: 320df6546c31c1fc350385ef2d66eb0aecfa7c079e4895d1b545fecee5323ab0
3
+ metadata.gz: 6a58d74e2627a2f4f0ac79fa05c9ce07d2b17b8500af7e38d59fd7a33ac22fe7
4
+ data.tar.gz: 8b1d8531cc3fcc1183d14c465b886833b97130326d891b9da00ef05780b36a2c
5
5
  SHA512:
6
- metadata.gz: ed0e93b5cdd4f0f4bd81396a6eeb6baef095c2eac0caa039e8dd013a55b764d155359baafcc6667d30a98c3df0f6fa3e1af457086fd72c0a18851ddd220ef8e4
7
- data.tar.gz: d069e57a16755b4c6e78664c2bdf521b45a08152c7b7f78145b1f056c8ba8656ca9fce2b66c7970a0f9872812a4e6e70fc0676433ebc38e74fb2ecd6365c96a0
6
+ metadata.gz: 351a846e41802b033bb217d3a574a5a8a18633cc51845313d15ef41220c036a92d068a6959fde5eea4fb25b8586974baf6e02ea62369342d911de5023bcc0863
7
+ data.tar.gz: ebbf67d572a03b463b40e0e359446fd1e76d64ad4a0200556ffb78a425130aebf0876c23b0090e9770c9b6921a0e370d22d9e11520ad875b12b59d95671d4e2b
@@ -16,6 +16,7 @@ on:
16
16
  pull_request:
17
17
  branches:
18
18
  - master
19
+ workflow_dispatch:
19
20
 
20
21
  jobs:
21
22
  build:
data/.gitignore CHANGED
@@ -4,5 +4,6 @@
4
4
  /.yardoc
5
5
  /coverage
6
6
  /.bundle
7
+ /cfg.txt
7
8
 
8
9
  .rubocop-https---raw-githubusercontent-com-discourse-discourse-master--rubocop-yml
@@ -1,14 +1,7 @@
1
- begin
2
- require 'git-version-bump'
3
- rescue LoadError
4
- nil
5
- end
6
-
7
1
  Gem::Specification.new do |s|
8
2
  s.name = "config_skeleton"
9
3
 
10
- s.version = GVB.version rescue "0.0.0.1.NOGVB"
11
- s.date = GVB.date rescue Time.now.strftime("%Y-%m-%d")
4
+ s.version = "0.3.1"
12
5
 
13
6
  s.platform = Gem::Platform::RUBY
14
7
 
@@ -29,7 +22,6 @@ Gem::Specification.new do |s|
29
22
 
30
23
  s.add_development_dependency 'bundler'
31
24
  s.add_development_dependency 'github-release'
32
- s.add_development_dependency 'git-version-bump'
33
25
  s.add_development_dependency 'rake', "~> 12.0"
34
26
  s.add_development_dependency 'redcarpet'
35
27
  s.add_development_dependency 'rubocop'
@@ -23,7 +23,8 @@ require 'tempfile'
23
23
  #
24
24
  # 1. Implement service-specific config generation and reloading code, by
25
25
  # overriding the private methods #config_file, #config_data, and #reload_server
26
- # (and also potentially #config_ok? and #sleep_duration).
26
+ # (and also potentially #config_ok?, #sleep_duration, #before_regenerate_config, and
27
+ # #after_regenerate_config).
27
28
  # See the documentation for those methods for what they need to do.
28
29
  #
29
30
  # 1. Setup any file watchers you want with .watch and #watch.
@@ -196,11 +197,12 @@ class ConfigSkeleton < ServiceSkeleton
196
197
 
197
198
  hook_signal(:HUP) do
198
199
  logger.info("SIGHUP") { "received SIGHUP, triggering config regeneration" }
199
- regenerate_config(force_reload: true)
200
+ @trigger_regen_w << "."
200
201
  end
201
202
 
202
203
  initialize_config_skeleton_metrics
203
204
  @trigger_regen_r, @trigger_regen_w = IO.pipe
205
+ @terminate_r, @terminate_w = IO.pipe
204
206
  end
205
207
 
206
208
  # Expose the write pipe which can be written to to trigger a config
@@ -230,8 +232,6 @@ class ConfigSkeleton < ServiceSkeleton
230
232
 
231
233
  logger.debug(logloc) { "notifier fd is #{notifier.to_io.inspect}" }
232
234
 
233
- @terminate_r, @terminate_w = IO.pipe
234
-
235
235
  loop do
236
236
  if ios = IO.select(
237
237
  [notifier.to_io, @terminate_r, @trigger_regen_r],
@@ -363,6 +363,20 @@ class ConfigSkeleton < ServiceSkeleton
363
363
  raise NotImplementedError, "config_data must be implemented in subclass."
364
364
  end
365
365
 
366
+ # Run code before the config is regenerated and the config_file
367
+ # is written.
368
+ #
369
+ # @note this can optionally be implemented by subclasses.
370
+ #
371
+ def before_regenerate_config(force_reload); end
372
+
373
+ # Run code after the config is regenerated and if the regeneration
374
+ # was forced the new config has been cycled in.
375
+ #
376
+ # @note this can optionally be implemented by subclasses.
377
+ #
378
+ def after_regenerate_config(force_reload); end
379
+
366
380
  # Verify that the currently running config is acceptable.
367
381
  #
368
382
  # In the event that a generated config is "bad", it may be possible to detect
@@ -444,6 +458,8 @@ class ConfigSkeleton < ServiceSkeleton
444
458
  # @return [void]
445
459
  #
446
460
  def regenerate_config(force_reload: false)
461
+ before_regenerate_config(force_reload)
462
+
447
463
  logger.debug(logloc) { "force? #{force_reload.inspect}" }
448
464
  tmpfile = Tempfile.new(service_name, File.dirname(config_file))
449
465
  logger.debug(logloc) { "Tempfile is #{tmpfile.path}" }
@@ -467,6 +483,8 @@ class ConfigSkeleton < ServiceSkeleton
467
483
  cycle_config(tmpfile.path)
468
484
  end
469
485
  end
486
+
487
+ after_regenerate_config(force_reload)
470
488
  ensure
471
489
  metrics.last_change_timestamp.set({}, File.stat(config_file).mtime.to_f)
472
490
  tmpfile.close rescue nil
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: config_skeleton
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0.1.ENOTAG
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Palmer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-11-24 00:00:00.000000000 Z
11
+ date: 2020-11-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: diffy
@@ -94,20 +94,6 @@ dependencies:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: git-version-bump
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
97
  - !ruby/object:Gem::Dependency
112
98
  name: rake
113
99
  requirement: !ruby/object:Gem::Requirement
@@ -238,9 +224,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
238
224
  version: 2.3.0
239
225
  required_rubygems_version: !ruby/object:Gem::Requirement
240
226
  requirements:
241
- - - ">"
227
+ - - ">="
242
228
  - !ruby/object:Gem::Version
243
- version: 1.3.1
229
+ version: '0'
244
230
  requirements: []
245
231
  rubygems_version: 3.0.3
246
232
  signing_key: