site_hook 0.9.16 → 0.9.19
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/site_hook/cli.rb +2 -0
- data/lib/site_hook/commands/config_class.rb +9 -32
- data/lib/site_hook/commands/init_class.rb +38 -0
- data/lib/site_hook/commands/server_class.rb +2 -2
- data/lib/site_hook/config.rb +57 -54
- data/lib/site_hook/deprecate.rb +6 -4
- data/lib/site_hook/exceptions.rb +20 -8
- data/lib/site_hook/logger.rb +51 -52
- data/lib/site_hook/methods.rb +23 -3
- data/lib/site_hook/paths.rb +32 -38
- data/lib/site_hook/prelogger.rb +3 -0
- data/lib/site_hook/runner.rb +36 -24
- data/lib/site_hook/templates/log_header.rb +19 -0
- data/lib/site_hook/version.rb +1 -1
- data/site_hook.gemspec +5 -4
- metadata +40 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '058b74bd66b905452e634bc863c081ed25db2c6168f23f82044aea362b1c2c11'
|
4
|
+
data.tar.gz: f80b40ceaa541a84b7ce423e71aa44cc4630c15625e5a9fb93dc65683f18c017
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fc442471bf2b8a7b689da756dfd5a054623d528fe94cf005e7025f820355ba30b37cc6e0c5b766450c5d0e423fb067584d2303f5c2fbd59e07a8539df123e56a
|
7
|
+
data.tar.gz: a290167d52b5e3985653d5bb0290156d3b7a4cf176c48f493cc90bb356aefbcc6e9b95b8d55a57f6cc11a6297884cb80bf16afe97707be54f19c2011dda1456d
|
data/lib/site_hook/cli.rb
CHANGED
@@ -26,6 +26,8 @@ module SiteHook
|
|
26
26
|
subcommand('server', SiteHook::Commands::ServerClass)
|
27
27
|
desc 'jekyll [subcommand] [options]', 'run jekyll actions'
|
28
28
|
subcommand('jekyll', SiteHook::Commands::JekyllClass)
|
29
|
+
desc 'init [subcommand] [options]', 'run init actions'
|
30
|
+
subcommand('init', SiteHook::Commands::InitClass)
|
29
31
|
|
30
32
|
end
|
31
33
|
end
|
@@ -1,50 +1,27 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
1
|
+
require "thor"
|
2
|
+
require "random_password"
|
3
|
+
require "site_hook/config_sections"
|
4
|
+
|
4
5
|
module SiteHook
|
5
6
|
module Commands
|
6
|
-
|
7
7
|
class ConfigClass < Thor
|
8
8
|
# def __version
|
9
9
|
# puts SiteHook::VERSION
|
10
10
|
# end
|
11
11
|
# map ['-v', '--version'] => __version
|
12
12
|
|
13
|
-
desc
|
14
|
-
method_option(:
|
15
|
-
def gen
|
16
|
-
unless SiteHook::Paths.default_config.exist?
|
17
|
-
if options[:output] == true
|
18
|
-
say SiteHook::ConfigSections.all_samples
|
19
|
-
else
|
20
|
-
File.open(SiteHook::Paths.config, 'w+') do |file|
|
21
|
-
file.puts SiteHook::ConfigSections.all_samples
|
22
|
-
end
|
23
|
-
end
|
24
|
-
else
|
25
|
-
if options[:output] == true
|
26
|
-
say SiteHook::ConfigSections.all_samples
|
27
|
-
end
|
28
|
-
if !SiteHook::Paths.default_config.exist?
|
29
|
-
File.open(SiteHook::Paths.config, 'w+') do |file|
|
30
|
-
file.puts SiteHook::ConfigSections.all_samples
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
end
|
36
|
-
|
37
|
-
desc 'mkpass [options]', 'create a hook password'
|
38
|
-
method_option(:length, type: :numeric, banner: 'LENGTH', aliases: ['-l'], default: 20)
|
13
|
+
desc "mkpass [options]", "create a hook password"
|
14
|
+
method_option(:length, type: :numeric, banner: "LENGTH", aliases: ["-l"], default: 20)
|
39
15
|
|
40
16
|
def mkpass
|
41
17
|
puts RandomPassword.new(length: options[:length]).generate
|
42
18
|
end
|
43
19
|
|
44
|
-
desc
|
20
|
+
desc "inspect [options]", "output the configuration"
|
21
|
+
|
45
22
|
def inspect
|
46
23
|
puts SiteHook::Config.new.inspect
|
47
24
|
end
|
48
25
|
end
|
49
26
|
end
|
50
|
-
end
|
27
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require "thor"
|
2
|
+
require "random_password"
|
3
|
+
require "site_hook/paths"
|
4
|
+
require "site_hook/config_sections"
|
5
|
+
require "tty-file"
|
6
|
+
|
7
|
+
module SiteHook
|
8
|
+
module Commands
|
9
|
+
class InitClass < Thor
|
10
|
+
include Thor::Actions
|
11
|
+
desc("all", "generate sample config and directories")
|
12
|
+
|
13
|
+
def all
|
14
|
+
invoke :create_shrc_dir
|
15
|
+
invoke :create_shrc_logs_dir
|
16
|
+
invoke :create_config_sample
|
17
|
+
end
|
18
|
+
|
19
|
+
desc "create_shrc_dir", "create the .shrc directory"
|
20
|
+
|
21
|
+
def create_shrc_dir
|
22
|
+
TTY::File.create_dir(SiteHook::Paths.dir)
|
23
|
+
end
|
24
|
+
|
25
|
+
desc "create_shrc_logs_dir", "create the .shrc/logs directory"
|
26
|
+
|
27
|
+
def create_shrc_logs_dir
|
28
|
+
TTY::File.create_dir(SiteHook::Paths.logs)
|
29
|
+
end
|
30
|
+
|
31
|
+
desc "create_config_sample", "create the config sample"
|
32
|
+
|
33
|
+
def create_config_sample
|
34
|
+
TTY::File.create_file(SiteHook::Paths.config, SiteHook::ConfigSections.all_samples)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -14,8 +14,8 @@ module SiteHook
|
|
14
14
|
# puts SiteHook::VERSION
|
15
15
|
# end
|
16
16
|
# map ['-v', '--version'] => __version
|
17
|
-
method_option(:host, banner: 'HOST', aliases: ['-h'], type: :string, default: SiteHook::Config.
|
18
|
-
method_option(:port, banner: 'PORT', aliases: ['-p'], type: :numeric, default: SiteHook::Config.
|
17
|
+
# method_option(:host, banner: 'HOST', aliases: ['-h'], type: :string, default: SiteHook::Config.webhook.host)
|
18
|
+
# method_option(:port, banner: 'PORT', aliases: ['-p'], type: :numeric, default: SiteHook::Config.webhook.port)
|
19
19
|
desc 'listen [options]', ''
|
20
20
|
def listen
|
21
21
|
$threads << Thread.new do
|
data/lib/site_hook/config.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
4
|
-
require
|
1
|
+
require "site_hook/paths"
|
2
|
+
require "yaml"
|
3
|
+
require "site_hook/string_ext"
|
4
|
+
require "site_hook/prelogger"
|
5
|
+
|
5
6
|
module SiteHook
|
6
7
|
class Config
|
7
8
|
@@config = {}
|
@@ -47,14 +48,14 @@ module SiteHook
|
|
47
48
|
# end
|
48
49
|
|
49
50
|
def inspect
|
50
|
-
meths
|
51
|
+
meths = %i[webhook log_levels cli projects]
|
51
52
|
sections = {}
|
52
53
|
meths.each do |m|
|
53
54
|
sections[m] = self.class.send(m).inspect
|
54
55
|
end
|
55
56
|
secs = []
|
56
57
|
sections.each { |name, instance| secs << "#{name}=#{instance}" }
|
57
|
-
"#<SiteHook::Config #{secs.join(
|
58
|
+
"#<SiteHook::Config #{secs.join(" ")}>"
|
58
59
|
end
|
59
60
|
|
60
61
|
def self.reload!
|
@@ -70,64 +71,65 @@ module SiteHook
|
|
70
71
|
end
|
71
72
|
|
72
73
|
def initialize
|
73
|
-
@@config
|
74
|
+
@@config = {}
|
74
75
|
@@filename = SiteHook::Paths.default_config
|
75
76
|
begin
|
76
77
|
@@config = YAML.load_file(@@filename)
|
77
78
|
rescue Errno::ENOENT
|
79
|
+
PreLogger.error "ENOENT"
|
78
80
|
raise SiteHook::NoConfigError.new @@filename
|
79
81
|
rescue NoMethodError
|
80
|
-
@@filename.empty?
|
82
|
+
PreLogger.error @@filename.empty?
|
81
83
|
end
|
82
|
-
rescue NoConfigError
|
83
|
-
#SiteHook::Commands::ConfigClass.invoke()
|
84
|
-
say SiteHook::Commands::ConfigClass.methods
|
85
|
-
rescue NeitherConfigError
|
86
|
-
#SiteHook::Commands::ConfigClass.invoke(:gen)
|
87
|
-
say SiteHook::Commands::ConfigClass.methods
|
88
84
|
end
|
89
85
|
|
90
86
|
# @return [Webhook]
|
91
87
|
def self.webhook
|
92
|
-
Webhook.new(@@config[
|
88
|
+
Webhook.new(@@config["webhook"])
|
93
89
|
end
|
94
90
|
|
95
91
|
# @return [Projects]
|
96
92
|
def self.projects
|
97
|
-
Projects.new(@@config[
|
93
|
+
Projects.new(@@config["projects"])
|
98
94
|
end
|
99
95
|
|
100
96
|
# @return [Cli]
|
101
97
|
def self.cli
|
102
|
-
Cli.new(@@config[
|
98
|
+
Cli.new(@@config["cli"])
|
103
99
|
end
|
104
100
|
|
105
101
|
# @return [LogLevels]
|
106
102
|
def self.log_levels
|
107
|
-
LogLevels.new(@@config[
|
103
|
+
LogLevels.new(@@config["log_levels"])
|
108
104
|
end
|
109
105
|
end
|
106
|
+
|
110
107
|
class Webhook
|
111
108
|
def initialize(config)
|
112
109
|
config.each do |option, value|
|
113
110
|
sec = StrExt.mkatvar(option)
|
114
111
|
self.instance_variable_set(:"#{sec}", value)
|
112
|
+
sec2 = StrExt.mkatatvar(option)
|
113
|
+
self.class_variable_set(:"#{sec2}", value)
|
115
114
|
end
|
116
115
|
end
|
117
116
|
|
117
|
+
def self.host
|
118
|
+
end
|
119
|
+
|
118
120
|
def host
|
119
|
-
@host
|
121
|
+
@host || "0.0.0.0"
|
120
122
|
end
|
121
123
|
|
122
124
|
def port
|
123
|
-
@port
|
125
|
+
@port || 9090
|
124
126
|
end
|
125
127
|
|
126
128
|
def inspect
|
127
129
|
"#<SiteHook::Webhook host=#{host} port=#{port}>"
|
128
130
|
end
|
129
|
-
|
130
131
|
end
|
132
|
+
|
131
133
|
class Projects
|
132
134
|
def initialize(config)
|
133
135
|
config.each do |project, options|
|
@@ -136,12 +138,11 @@ module SiteHook
|
|
136
138
|
end
|
137
139
|
|
138
140
|
def inspect
|
139
|
-
|
140
141
|
output = []
|
141
142
|
instance_variables.each do |project|
|
142
143
|
output << "#{StrExt.rematvar(project)}=#{instance_variable_get(project).inspect}"
|
143
144
|
end
|
144
|
-
"#<SiteHook::Projects #{output.join(
|
145
|
+
"#<SiteHook::Projects #{output.join(" ")}"
|
145
146
|
end
|
146
147
|
|
147
148
|
def find_project(name)
|
@@ -157,7 +158,6 @@ module SiteHook
|
|
157
158
|
rescue NameError
|
158
159
|
nil
|
159
160
|
end
|
160
|
-
|
161
161
|
end
|
162
162
|
|
163
163
|
def get(project)
|
@@ -181,7 +181,7 @@ module SiteHook
|
|
181
181
|
#
|
182
182
|
# Collect project names that meet certain criteria
|
183
183
|
def collect_public
|
184
|
-
public_vars
|
184
|
+
public_vars = instance_variables.reject do |project_var|
|
185
185
|
instance_variable_get(project_var).private
|
186
186
|
end
|
187
187
|
public_projects = []
|
@@ -198,14 +198,13 @@ module SiteHook
|
|
198
198
|
%i[src dst repo host private].each do |option|
|
199
199
|
projects[project.name][option] = project.instance_variable_get(StrExt.mkatvar(option))
|
200
200
|
end
|
201
|
-
|
202
201
|
end
|
203
202
|
projects
|
204
203
|
end
|
205
204
|
|
206
205
|
def each(&block)
|
207
206
|
len1 = instance_variables.length
|
208
|
-
x
|
207
|
+
x = 0
|
209
208
|
while x < len1
|
210
209
|
base = self
|
211
210
|
yield instance_variable_get(instance_variables[x])
|
@@ -217,11 +216,11 @@ module SiteHook
|
|
217
216
|
instance_variables.length
|
218
217
|
end
|
219
218
|
end
|
219
|
+
|
220
220
|
class LogLevels
|
221
221
|
attr :app, :hook, :build, :git
|
222
222
|
|
223
223
|
def initialize(config)
|
224
|
-
|
225
224
|
LogLevels.defaults.each do |type, level|
|
226
225
|
if config.fetch(type.to_s, nil)
|
227
226
|
level(type.to_s, config.fetch(type.to_s))
|
@@ -233,7 +232,7 @@ module SiteHook
|
|
233
232
|
|
234
233
|
def to_h
|
235
234
|
output_hash = {}
|
236
|
-
wanted
|
235
|
+
wanted = %i[app hook build git]
|
237
236
|
wanted.each do |logger|
|
238
237
|
output_hash.store(logger, instance_variable_get(StrExt.mkatvar(logger)))
|
239
238
|
end
|
@@ -245,7 +244,7 @@ module SiteHook
|
|
245
244
|
instance_variables.each do |var|
|
246
245
|
levels << "#{StrExt.rematvar(var)}=#{self.instance_variable_get(var)}"
|
247
246
|
end
|
248
|
-
"#<SiteHook::LogLevels #{levels.join(
|
247
|
+
"#<SiteHook::LogLevels #{levels.join(" ")}>"
|
249
248
|
end
|
250
249
|
|
251
250
|
def fetch(key)
|
@@ -254,10 +253,10 @@ module SiteHook
|
|
254
253
|
|
255
254
|
def self.defaults
|
256
255
|
{
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
256
|
+
app: "info",
|
257
|
+
hook: "info",
|
258
|
+
build: "info",
|
259
|
+
git: "info",
|
261
260
|
}
|
262
261
|
end
|
263
262
|
|
@@ -265,18 +264,19 @@ module SiteHook
|
|
265
264
|
instance_variable_set(:"@#{type}", level)
|
266
265
|
end
|
267
266
|
end
|
267
|
+
|
268
268
|
class Cli
|
269
269
|
SECTIONS = {
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
270
|
+
config: {
|
271
|
+
mkpass: [:length, :symbols],
|
272
|
+
},
|
273
|
+
server: {
|
274
|
+
# no host or port since those are set via Webhook
|
275
|
+
# webhook:
|
276
|
+
# host: 127.0.0.1
|
277
|
+
# port: 9090
|
278
|
+
#
|
279
|
+
# TODO: Find options to put here
|
280
280
|
},
|
281
281
|
}
|
282
282
|
|
@@ -296,12 +296,12 @@ module SiteHook
|
|
296
296
|
end
|
297
297
|
|
298
298
|
def inspect
|
299
|
-
wanted
|
299
|
+
wanted = instance_variables
|
300
300
|
outputs = []
|
301
301
|
wanted.each do |meth|
|
302
302
|
outputs << "#{StrExt.rematvar(meth)}=#{instance_variable_get(meth)}"
|
303
303
|
end
|
304
|
-
"#<SiteHook::Cli #{outputs.join(
|
304
|
+
"#<SiteHook::Cli #{outputs.join(" ")}>"
|
305
305
|
end
|
306
306
|
end
|
307
307
|
|
@@ -323,12 +323,12 @@ module SiteHook
|
|
323
323
|
if instance_variable_get(StrExt.mkatvar(:config))
|
324
324
|
# variable exists in configuration
|
325
325
|
else
|
326
|
-
instance_variable_set(StrExt.mkatvar(:config),
|
326
|
+
instance_variable_set(StrExt.mkatvar(:config), "_config.yml")
|
327
327
|
end
|
328
|
-
if config.fetch(
|
328
|
+
if config.fetch("private", nil)
|
329
329
|
instance_variable_set(StrExt.mkatvar(option), value) unless instance_variables.include?(:@private)
|
330
330
|
else
|
331
|
-
instance_variable_set(StrExt.mkatvar(
|
331
|
+
instance_variable_set(StrExt.mkatvar("private"), false)
|
332
332
|
end
|
333
333
|
end
|
334
334
|
end
|
@@ -338,9 +338,10 @@ module SiteHook
|
|
338
338
|
instance_variables.each do |sym|
|
339
339
|
outputs << "#{StrExt.rematvar(sym)}=#{instance_variable_get(sym)}"
|
340
340
|
end
|
341
|
-
"#<SiteHook::Project #{outputs.join(
|
341
|
+
"#<SiteHook::Project #{outputs.join(" ")}>"
|
342
342
|
end
|
343
343
|
end
|
344
|
+
|
344
345
|
class CliClasses
|
345
346
|
class Config
|
346
347
|
def initialize(config)
|
@@ -359,9 +360,10 @@ module SiteHook
|
|
359
360
|
@configured_commands.each do |m, body|
|
360
361
|
outputs << "#{m}=#{body}"
|
361
362
|
end
|
362
|
-
"#<SiteHook::Cli::Config #{outputs.join(
|
363
|
+
"#<SiteHook::Cli::Config #{outputs.join(" ")}>"
|
363
364
|
end
|
364
365
|
end
|
366
|
+
|
365
367
|
class Server
|
366
368
|
def initialize(config)
|
367
369
|
@configured_commands = {}
|
@@ -379,9 +381,10 @@ module SiteHook
|
|
379
381
|
@configured_commands.each do |m, body|
|
380
382
|
outputs << "#{m}=#{body}"
|
381
383
|
end
|
382
|
-
"#<SiteHook::Cli::Server #{outputs.join(
|
384
|
+
"#<SiteHook::Cli::Server #{outputs.join(" ")}>"
|
383
385
|
end
|
384
386
|
end
|
387
|
+
|
385
388
|
class Command
|
386
389
|
attr_reader :name
|
387
390
|
|
@@ -390,7 +393,6 @@ module SiteHook
|
|
390
393
|
options.each do |option, value|
|
391
394
|
self.class.define_method(option.to_sym) do
|
392
395
|
return value
|
393
|
-
|
394
396
|
end
|
395
397
|
end
|
396
398
|
end
|
@@ -399,9 +401,10 @@ module SiteHook
|
|
399
401
|
# Bleh
|
400
402
|
end
|
401
403
|
end
|
404
|
+
|
402
405
|
class CommandOption
|
403
406
|
def initialize(option, value)
|
404
407
|
end
|
405
408
|
end
|
406
409
|
end
|
407
|
-
end
|
410
|
+
end
|
data/lib/site_hook/deprecate.rb
CHANGED
@@ -1,7 +1,9 @@
|
|
1
1
|
require 'paint/util'
|
2
2
|
module SiteHook
|
3
3
|
|
4
|
+
# @returns SiteHook::DeprecationError
|
4
5
|
class DeprecationError < SiteHookError
|
6
|
+
# @params [String] msg message to return
|
5
7
|
def initialize(msg)
|
6
8
|
super(msg, 99)
|
7
9
|
end
|
@@ -9,7 +11,7 @@ module SiteHook
|
|
9
11
|
class Deprecation
|
10
12
|
|
11
13
|
def self.deprecate(command, situation, instructions, continue)
|
12
|
-
@@exe_name = command
|
14
|
+
@@exe_name = command
|
13
15
|
@@str = "▼▼▼ [#{Paint['DEPRECATION ERROR', 'red', :bold]}] —— #{Paint['The following situation is deprecated', 'yellow', :bold, :blink]}! ▼▼▼"
|
14
16
|
@@situation = situation
|
15
17
|
@@str << "\n#{@@situation}"
|
@@ -22,8 +24,8 @@ module SiteHook
|
|
22
24
|
return self.deprecate(
|
23
25
|
command,
|
24
26
|
"'#{Paint[SiteHook::Paths.old_config.to_s, 'red']}' is deprecated in favor of '#{Paint[SiteHook::Paths.config, 'green']}'",
|
25
|
-
|
26
|
-
Please run
|
27
|
+
<<-INSTRUCT,
|
28
|
+
Please run `site_hook config upgrade-shrc", 'red', :blink]}` to rectify this.
|
27
29
|
Once version 1.0.0 is released, '#{Paint["#{SiteHook::Paths.config}", 'green']}' will
|
28
30
|
be the only config file option, and '#{Paint["#{SiteHook::Paths.old_config}", 'orange']}' will not be allowed.
|
29
31
|
any existance of '#{Paint["#{Dir.home}/.jph", 'red']}' after the #{Paint['1.0.0', :bold]} release will result in an Exception being raised.
|
@@ -41,7 +43,7 @@ module SiteHook
|
|
41
43
|
|
42
44
|
def initialize(command)
|
43
45
|
@command_object = command
|
44
|
-
@exe_name =
|
46
|
+
@exe_name = 'site_hook'
|
45
47
|
@output_string = "Command `#{@exe_name} #{command.name_for_help.join(' ')}"
|
46
48
|
end
|
47
49
|
def self.declare(command)
|
data/lib/site_hook/exceptions.rb
CHANGED
@@ -1,33 +1,45 @@
|
|
1
|
-
require
|
1
|
+
require "paint"
|
2
|
+
|
2
3
|
module SiteHook
|
3
4
|
class SiteHookError < StandardError
|
5
|
+
attr :err, :status
|
6
|
+
|
4
7
|
def initialize(msg, err)
|
8
|
+
@err = err
|
9
|
+
@status = @err
|
5
10
|
super(msg)
|
6
|
-
exit err
|
7
11
|
end
|
8
12
|
end
|
13
|
+
|
9
14
|
class ConfigExistsError < SiteHookError
|
10
15
|
end
|
16
|
+
|
11
17
|
class NoConfigError < SiteHookError
|
12
18
|
attr_reader :path
|
19
|
+
|
13
20
|
def initialize(path)
|
14
|
-
@str = "Config path '#{Paint[path,
|
15
|
-
@path = path
|
16
|
-
super(@str,98)
|
21
|
+
@str = "Config path '#{Paint[path, "red"]}' does not exist!"
|
22
|
+
@path = Pathname.new(path)
|
23
|
+
super(@str, 98)
|
17
24
|
end
|
18
25
|
end
|
26
|
+
|
19
27
|
class NeitherConfigError < SiteHookError
|
20
28
|
attr_reader :paths
|
29
|
+
|
21
30
|
def initialize
|
22
31
|
@str = "Neither '#{SiteHook::Paths.old_config}' nor '#{SiteHook::Paths.config}'"
|
32
|
+
super(@str, 99)
|
23
33
|
end
|
24
34
|
end
|
35
|
+
|
25
36
|
class NoLogsError < SiteHookError
|
26
37
|
attr_reader :path
|
38
|
+
|
27
39
|
def initialize(path)
|
28
|
-
@str = "Log path '#{Paint[path,
|
29
|
-
@path = path
|
30
|
-
super(@str,97)
|
40
|
+
@str = "Log path '#{Paint[path, "red"]}' does not exist!"
|
41
|
+
@path = Pathname.new(path)
|
42
|
+
super(@str, 97)
|
31
43
|
end
|
32
44
|
end
|
33
45
|
end
|
data/lib/site_hook/logger.rb
CHANGED
@@ -1,90 +1,89 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
6
|
-
require
|
1
|
+
require "logger"
|
2
|
+
require "recursive_open_struct"
|
3
|
+
require "site_hook/loggers"
|
4
|
+
require "site_hook/paths"
|
5
|
+
require "yaml"
|
6
|
+
require "site_hook/string_ext"
|
7
7
|
#require 'site_hook/configs'
|
8
8
|
module SiteHook
|
9
9
|
class Log
|
10
10
|
def self.defaults
|
11
11
|
RecursiveOpenStruct.new(
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
12
|
+
{
|
13
|
+
Hook: {
|
14
|
+
level: "info",
|
15
|
+
},
|
16
|
+
App: {
|
17
|
+
level: "info",
|
18
|
+
},
|
19
|
+
Build: {
|
20
|
+
level: "info",
|
21
|
+
},
|
22
|
+
Git: {
|
23
|
+
level: "info",
|
24
|
+
},
|
25
|
+
Access: {
|
26
|
+
level: nil,
|
27
|
+
},
|
28
|
+
Fake: {
|
29
|
+
level: nil,
|
30
|
+
},
|
31
|
+
}
|
32
|
+
)
|
32
33
|
end
|
33
34
|
|
34
35
|
def self.validate(config)
|
35
|
-
invalid_types
|
36
|
-
valid_config_log_types
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
36
|
+
invalid_types = []
|
37
|
+
valid_config_log_types = [
|
38
|
+
"hook",
|
39
|
+
"git",
|
40
|
+
"app",
|
41
|
+
"build",
|
41
42
|
]
|
42
43
|
invalid_config_log_types = [
|
43
|
-
|
44
|
-
|
44
|
+
"access",
|
45
|
+
"fake",
|
45
46
|
]
|
46
|
-
config
|
47
|
-
is_config_valid
|
47
|
+
config = config["log_levels"]
|
48
|
+
is_config_valid = config.all? do |x|
|
48
49
|
if valid_config_log_types.include? x
|
49
50
|
true
|
51
|
+
elsif invalid_config_log_types.include? x
|
52
|
+
invalid_types << x
|
53
|
+
false
|
50
54
|
else
|
51
|
-
|
52
|
-
invalid_types << x
|
53
|
-
false
|
54
|
-
end
|
55
|
+
false
|
55
56
|
end
|
56
57
|
end
|
58
|
+
|
57
59
|
unless is_config_valid
|
58
|
-
raise ArgumentError "invalid log type(s) in config, [#{invalid_types.join(
|
60
|
+
raise ArgumentError "invalid log type(s) in config, [#{invalid_types.join(", ")}]"
|
59
61
|
end
|
60
62
|
end
|
61
63
|
|
62
64
|
def inspect
|
63
|
-
meths
|
65
|
+
meths = %i[hook build git app fake access]
|
64
66
|
sections = {}
|
65
67
|
meths.each do |m|
|
66
68
|
sections[m] = self.class.send(m).inspect
|
67
69
|
end
|
68
70
|
secs = []
|
69
71
|
sections.each { |name, instance| secs << "#{name}=#{instance}" }
|
70
|
-
"#<SiteHook::Log #{secs.join(
|
72
|
+
"#<SiteHook::Log #{secs.join(" ")}>"
|
71
73
|
end
|
72
74
|
|
73
75
|
def initialize(input, output, errput)
|
74
|
-
|
75
76
|
begin
|
76
77
|
@@config = SiteHook::Config.log_levels
|
77
78
|
rescue Errno::ENOENT
|
78
79
|
raise NoConfigError path
|
79
80
|
rescue NoMethodError
|
80
|
-
|
81
81
|
end
|
82
|
-
|
83
82
|
end
|
84
83
|
|
85
84
|
# @return [Access]
|
86
85
|
def self.access
|
87
|
-
Loggers::Access.new(base:
|
86
|
+
Loggers::Access.new(base: "SiteHook::Log::Access")
|
88
87
|
end
|
89
88
|
|
90
89
|
# @return [Loggers::Fake]
|
@@ -94,22 +93,22 @@ module SiteHook
|
|
94
93
|
|
95
94
|
# @return [Loggers::Hook]
|
96
95
|
def self.hook
|
97
|
-
Loggers::Hook.new(level: @@config.hook, base:
|
96
|
+
Loggers::Hook.new(level: @@config.hook, base: "SiteHook::Log::Hook")
|
98
97
|
end
|
99
98
|
|
100
99
|
# @return [Loggers::Git]
|
101
100
|
def self.git
|
102
|
-
Loggers::Git.new(level: @@config.git, base:
|
101
|
+
Loggers::Git.new(level: @@config.git, base: "SiteHook::Log::Git")
|
103
102
|
end
|
104
103
|
|
105
104
|
# @return [Loggers::Build]
|
106
105
|
def self.build
|
107
|
-
Loggers::Build.new(level: @@config.build, base:
|
106
|
+
Loggers::Build.new(level: @@config.build, base: "SiteHook::Log::Build")
|
108
107
|
end
|
109
108
|
|
110
109
|
# @return [Loggers::App]
|
111
110
|
def self.app
|
112
|
-
Loggers::App.new(level: @@config.app, base:
|
111
|
+
Loggers::App.new(level: @@config.app, base: "SiteHook::Log::App")
|
113
112
|
end
|
114
113
|
end
|
115
|
-
end
|
114
|
+
end
|
data/lib/site_hook/methods.rb
CHANGED
@@ -1,14 +1,34 @@
|
|
1
|
-
require
|
1
|
+
require "site_hook/config"
|
2
|
+
|
2
3
|
module SiteHook
|
3
4
|
class Methods
|
4
5
|
def self.mklogdir
|
5
|
-
path = SiteHook::Paths.
|
6
|
+
path = SiteHook::Paths.logs
|
6
7
|
if path.exist?
|
8
|
+
STDERR.puts "'#{path}' exists, skipping.."
|
7
9
|
# Path exists, don't do anything
|
8
10
|
else
|
11
|
+
STDERR.puts "'#{path}' does not exist. Creating..."
|
9
12
|
FileUtils.mkpath(path.to_s)
|
10
13
|
end
|
11
14
|
end
|
15
|
+
def self.mkconfdir
|
16
|
+
path = SiteHook::Paths.dir
|
17
|
+
if path.exist?
|
18
|
+
STDERR.puts "'#{path}' exists, skipping.."
|
19
|
+
else
|
20
|
+
STDERR.puts "'#{path}' does not exist. Creating..."
|
21
|
+
end
|
22
|
+
end
|
23
|
+
def self.mkconf
|
24
|
+
path = SiteHook::Paths.config
|
25
|
+
if path.exist?
|
26
|
+
STDERR.puts "'#{path}' exists, skipping.."
|
27
|
+
else
|
28
|
+
STDERR.puts "'#{path}' does not exist. Creating..."
|
29
|
+
TTY::File.create_file(path, SiteHook::ConfigSections.all_samples)
|
30
|
+
end
|
31
|
+
end
|
12
32
|
|
13
33
|
# @param [String] hook_name the hook name as defined in the projects:... directive
|
14
34
|
def self.find_hook(hook_name)
|
@@ -23,4 +43,4 @@ module SiteHook
|
|
23
43
|
end
|
24
44
|
end
|
25
45
|
end
|
26
|
-
end
|
46
|
+
end
|
data/lib/site_hook/paths.rb
CHANGED
@@ -6,75 +6,68 @@
|
|
6
6
|
# -> Copyright (c) 2018 Ken Spencer
|
7
7
|
# -> License: MIT
|
8
8
|
##########
|
9
|
-
require
|
10
|
-
require
|
11
|
-
require
|
9
|
+
require "site_hook/methods"
|
10
|
+
require "site_hook/exceptions"
|
11
|
+
require "site_hook/version"
|
12
|
+
|
12
13
|
module SiteHook
|
13
14
|
# Paths: Paths to gem resources and things
|
14
15
|
class Paths
|
15
16
|
def self.old_dir
|
16
|
-
Pathname(Dir.home).join(
|
17
|
+
Pathname(Dir.home).join(".jph")
|
17
18
|
end
|
18
19
|
def self.old_config
|
19
|
-
Pathname(Dir.home).join(
|
20
|
+
Pathname(Dir.home).join(".jph", "config")
|
20
21
|
end
|
21
22
|
def self.old_logs
|
22
|
-
Pathname(Dir.home).join(
|
23
|
+
Pathname(Dir.home).join(".jph", "logs")
|
23
24
|
end
|
24
25
|
def self.dir
|
25
|
-
Pathname(Dir.home).join(
|
26
|
+
Pathname(Dir.home).join(".shrc")
|
26
27
|
end
|
27
28
|
def self.config
|
28
|
-
Pathname(Dir.home).join(
|
29
|
+
Pathname(Dir.home).join(".shrc", "config")
|
29
30
|
end
|
30
31
|
|
31
32
|
def self.logs
|
32
|
-
Pathname(Dir.home).join(
|
33
|
+
Pathname(Dir.home).join(".shrc", "logs")
|
33
34
|
end
|
34
35
|
def self.default_config(old_exists = self.old_config.exist?, new_exists = self.config.exist?)
|
35
|
-
path =
|
36
|
-
begin
|
36
|
+
path = ""
|
37
|
+
begin
|
37
38
|
if old_exists
|
38
|
-
|
39
|
+
SiteHook::Deprecation.deprecate_config("")
|
39
40
|
else
|
40
41
|
if new_exists
|
41
42
|
path = self.config
|
42
43
|
else
|
43
|
-
raise SiteHook::
|
44
|
+
raise SiteHook::NoConfigError.new self.config
|
44
45
|
end
|
45
46
|
end
|
46
|
-
rescue SiteHook::NeitherConfigError
|
47
|
-
if self.dir.exist?
|
48
|
-
path = self.config
|
49
|
-
end
|
50
47
|
end
|
51
48
|
path
|
52
49
|
end
|
53
50
|
def self.default_logs(old_exists = self.old_logs.exist?, new_exists = self.logs.exist?)
|
54
|
-
path =
|
55
|
-
|
56
|
-
|
57
|
-
|
51
|
+
path = ""
|
52
|
+
|
53
|
+
if old_exists
|
54
|
+
path = self.old_logs
|
55
|
+
else
|
56
|
+
if new_exists
|
57
|
+
path = self.logs
|
58
58
|
else
|
59
|
-
|
60
|
-
|
61
|
-
else
|
62
|
-
raise SiteHook::NoLogsError.new path
|
63
|
-
end
|
59
|
+
path = self.logs
|
60
|
+
STDERR.puts "#{path} does not exist"
|
64
61
|
end
|
65
|
-
rescue SiteHook::NoLogsError
|
66
|
-
path = self.logs
|
67
62
|
end
|
68
|
-
path
|
69
63
|
end
|
70
64
|
|
71
65
|
def self.lib_dir
|
72
|
-
if ENV[
|
73
|
-
Pathname(ENV[
|
66
|
+
if ENV["BUNDLE_GEMFILE"]
|
67
|
+
Pathname(ENV["BUNDLE_GEMFILE"]).dirname.join("lib")
|
74
68
|
else
|
75
|
-
Pathname(::Gem.user_dir).join(
|
69
|
+
Pathname(::Gem.user_dir).join("gems", "site_hook-#{SiteHook::VERSION}", "lib")
|
76
70
|
end
|
77
|
-
|
78
71
|
end
|
79
72
|
def self.make_log_name(klass, level = nil, old_exists = self.old_logs.exist?, new_exists = self.logs.exist?)
|
80
73
|
if level
|
@@ -82,8 +75,12 @@ module SiteHook
|
|
82
75
|
end
|
83
76
|
case old_exists
|
84
77
|
when true
|
85
|
-
|
86
|
-
|
78
|
+
SiteHook::Deprecation.deprecate(
|
79
|
+
"",
|
80
|
+
"The '.jph/**' directory and contents are now deprecated, and will start erroring and exiting.",
|
81
|
+
"Please use 'site_hook config upgrade-shrc' to upgrade your config to the newer '.shrc/**' folder style.",
|
82
|
+
false
|
83
|
+
)
|
87
84
|
when false
|
88
85
|
if new_exists
|
89
86
|
self.logs.join("#{klass.to_s.safe_log_name}#{level}.log")
|
@@ -91,10 +88,7 @@ module SiteHook
|
|
91
88
|
path ||= SiteHook::Paths.logs
|
92
89
|
raise SiteHook::NoLogsError.new path
|
93
90
|
end
|
94
|
-
|
95
91
|
end
|
96
|
-
rescue Errno::ENOENT => e
|
97
|
-
|
98
92
|
end
|
99
93
|
end
|
100
94
|
end
|
data/lib/site_hook/prelogger.rb
CHANGED
data/lib/site_hook/runner.rb
CHANGED
@@ -1,36 +1,48 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require "site_hook"
|
2
|
+
require "site_hook/logger"
|
3
|
+
|
3
4
|
module SiteHook
|
4
5
|
class Runner
|
5
6
|
def initialize(argv = ARGV, stdin = STDIN, stdout = STDOUT, stderr = STDERR, kernel = Kernel)
|
6
7
|
@argv, @stdin, @stdout, @stderr, @kernel = argv, stdin, stdout, stderr, kernel
|
7
8
|
end
|
9
|
+
|
8
10
|
def execute!
|
9
|
-
|
10
|
-
$stderr = @stderr
|
11
|
-
$stdin = @stdin
|
12
|
-
$stdout = @stdout
|
11
|
+
begin
|
13
12
|
SiteHook::PreLogger.new($stdin, $stdout, $stderr)
|
14
13
|
SiteHook::Config.new
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
rescue StandardError => e
|
20
|
-
b = e.backtrace
|
21
|
-
STDERR.puts("#{b.shift}: #{e.message} (#{e.class})")
|
22
|
-
STDERR.puts(b.map{|s| "\tfrom #{s}"}.join("\n"))
|
23
|
-
1
|
24
|
-
rescue SystemExit => e
|
25
|
-
STDERR.puts e.status
|
26
|
-
1
|
27
|
-
ensure
|
28
|
-
|
29
|
-
$stderr = STDERR
|
30
|
-
$stdin = STDIN
|
31
|
-
$stdout = STDOUT
|
14
|
+
rescue SiteHook::NoLogsError => e
|
15
|
+
FileUtils.mkpath(e.path)
|
16
|
+
rescue SiteHook::NoConfigError => e
|
17
|
+
TTY::File.create_file(e.path, SiteHook::ConfigSections.all_samples)
|
32
18
|
end
|
19
|
+
exit_code = begin
|
20
|
+
$stderr = @stderr
|
21
|
+
$stdin = @stdin
|
22
|
+
$stdout = @stdout
|
23
|
+
SiteHook::PreLogger.new($stdin, $stdout, $stderr)
|
24
|
+
SiteHook::Config.new
|
25
|
+
SiteHook::Log.new($stdin, $stdout, $stderr)
|
26
|
+
SiteHook::CLI.start(@argv)
|
27
|
+
0
|
28
|
+
rescue StandardError => e
|
29
|
+
b = e.backtrace
|
30
|
+
unless e.class == SiteHook::NoConfigError
|
31
|
+
STDERR.puts("#{b.shift}: #{e.message} (#{e.class})")
|
32
|
+
STDERR.puts(b.map { |s| "\tfrom #{s}" }.join("\n"))
|
33
|
+
1
|
34
|
+
end
|
35
|
+
0
|
36
|
+
rescue SystemExit => e
|
37
|
+
STDERR.puts e.backtrace
|
38
|
+
STDERR.puts e.status
|
39
|
+
1
|
40
|
+
ensure
|
41
|
+
$stderr = STDERR
|
42
|
+
$stdin = STDIN
|
43
|
+
$stdout = STDOUT
|
44
|
+
end
|
33
45
|
@kernel.exit(exit_code)
|
34
46
|
end
|
35
47
|
end
|
36
|
-
end
|
48
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'super_callbacks'
|
2
|
+
module SiteHook
|
3
|
+
module Templates
|
4
|
+
class Logs
|
5
|
+
include SuperCallbacks
|
6
|
+
before :created_log_log_header do
|
7
|
+
@@time = Time.now.utc.localtime.strftime("%Y%m%dT%H%M%SZ%Z")
|
8
|
+
end
|
9
|
+
###
|
10
|
+
# Puts the log header to the start of the log files
|
11
|
+
# @param [String,File,Pathname] file file to
|
12
|
+
# @return NilClass
|
13
|
+
###
|
14
|
+
def created_log_log_header
|
15
|
+
header = "### Log file created at #{@@time}"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/site_hook/version.rb
CHANGED
data/site_hook.gemspec
CHANGED
@@ -33,16 +33,17 @@ Gem::Specification.new do |spec|
|
|
33
33
|
end
|
34
34
|
spec.require_paths = ['lib']
|
35
35
|
spec.add_dependency 'git', '~> 1.3'
|
36
|
-
spec.add_dependency '
|
37
|
-
spec.add_dependency 'grape', '~> 1.2.3'
|
36
|
+
spec.add_dependency 'grape-raketasks'
|
38
37
|
spec.add_dependency 'grape-route-helpers', '~> 2.1'
|
38
|
+
spec.add_dependency 'grape', '~> 1.2.3'
|
39
|
+
spec.add_dependency 'highline', '~> 2.0.1'
|
39
40
|
spec.add_dependency 'paint', '~> 2.0'
|
40
41
|
spec.add_dependency 'random_password', '~> 0.1.1'
|
41
42
|
spec.add_dependency 'recursive-open-struct', '~> 1.1'
|
42
43
|
spec.add_dependency 'super_callbacks', '~> 1.3.1'
|
43
|
-
spec.add_dependency 'thor', '~> 0.20.3'
|
44
|
-
spec.add_dependency 'grape-raketasks'
|
45
44
|
spec.add_dependency 'thin'
|
45
|
+
spec.add_dependency 'thor', '~> 0.20.3'
|
46
|
+
spec.add_dependency 'tty-file', '~> 0.8.0'
|
46
47
|
spec.add_development_dependency 'rspec', '3.8.0'
|
47
48
|
spec.add_development_dependency 'aruba', '~> 0.14.8'
|
48
49
|
spec.add_development_dependency 'bundler', '~> 1.17.3', '< 2.0'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: site_hook
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.19
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ken Spencer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-12-
|
11
|
+
date: 2019-12-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: git
|
@@ -25,19 +25,33 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.3'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: grape-raketasks
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: grape-route-helpers
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
30
44
|
requirements:
|
31
45
|
- - "~>"
|
32
46
|
- !ruby/object:Gem::Version
|
33
|
-
version: 2.
|
47
|
+
version: '2.1'
|
34
48
|
type: :runtime
|
35
49
|
prerelease: false
|
36
50
|
version_requirements: !ruby/object:Gem::Requirement
|
37
51
|
requirements:
|
38
52
|
- - "~>"
|
39
53
|
- !ruby/object:Gem::Version
|
40
|
-
version: 2.
|
54
|
+
version: '2.1'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: grape
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -53,19 +67,19 @@ dependencies:
|
|
53
67
|
- !ruby/object:Gem::Version
|
54
68
|
version: 1.2.3
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
70
|
+
name: highline
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
58
72
|
requirements:
|
59
73
|
- - "~>"
|
60
74
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
75
|
+
version: 2.0.1
|
62
76
|
type: :runtime
|
63
77
|
prerelease: false
|
64
78
|
version_requirements: !ruby/object:Gem::Requirement
|
65
79
|
requirements:
|
66
80
|
- - "~>"
|
67
81
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
82
|
+
version: 2.0.1
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: paint
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -123,47 +137,47 @@ dependencies:
|
|
123
137
|
- !ruby/object:Gem::Version
|
124
138
|
version: 1.3.1
|
125
139
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
140
|
+
name: thin
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
128
142
|
requirements:
|
129
|
-
- - "
|
143
|
+
- - ">="
|
130
144
|
- !ruby/object:Gem::Version
|
131
|
-
version: 0
|
145
|
+
version: '0'
|
132
146
|
type: :runtime
|
133
147
|
prerelease: false
|
134
148
|
version_requirements: !ruby/object:Gem::Requirement
|
135
149
|
requirements:
|
136
|
-
- - "
|
150
|
+
- - ">="
|
137
151
|
- !ruby/object:Gem::Version
|
138
|
-
version: 0
|
152
|
+
version: '0'
|
139
153
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
154
|
+
name: thor
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
142
156
|
requirements:
|
143
|
-
- - "
|
157
|
+
- - "~>"
|
144
158
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
159
|
+
version: 0.20.3
|
146
160
|
type: :runtime
|
147
161
|
prerelease: false
|
148
162
|
version_requirements: !ruby/object:Gem::Requirement
|
149
163
|
requirements:
|
150
|
-
- - "
|
164
|
+
- - "~>"
|
151
165
|
- !ruby/object:Gem::Version
|
152
|
-
version:
|
166
|
+
version: 0.20.3
|
153
167
|
- !ruby/object:Gem::Dependency
|
154
|
-
name:
|
168
|
+
name: tty-file
|
155
169
|
requirement: !ruby/object:Gem::Requirement
|
156
170
|
requirements:
|
157
|
-
- - "
|
171
|
+
- - "~>"
|
158
172
|
- !ruby/object:Gem::Version
|
159
|
-
version:
|
173
|
+
version: 0.8.0
|
160
174
|
type: :runtime
|
161
175
|
prerelease: false
|
162
176
|
version_requirements: !ruby/object:Gem::Requirement
|
163
177
|
requirements:
|
164
|
-
- - "
|
178
|
+
- - "~>"
|
165
179
|
- !ruby/object:Gem::Version
|
166
|
-
version:
|
180
|
+
version: 0.8.0
|
167
181
|
- !ruby/object:Gem::Dependency
|
168
182
|
name: rspec
|
169
183
|
requirement: !ruby/object:Gem::Requirement
|
@@ -264,6 +278,7 @@ files:
|
|
264
278
|
- lib/site_hook.rb
|
265
279
|
- lib/site_hook/cli.rb
|
266
280
|
- lib/site_hook/commands/config_class.rb
|
281
|
+
- lib/site_hook/commands/init_class.rb
|
267
282
|
- lib/site_hook/commands/jekyll_class.rb
|
268
283
|
- lib/site_hook/commands/server_class.rb
|
269
284
|
- lib/site_hook/config.rb
|
@@ -288,6 +303,7 @@ files:
|
|
288
303
|
- lib/site_hook/runner.rb
|
289
304
|
- lib/site_hook/sender.rb
|
290
305
|
- lib/site_hook/string_ext.rb
|
306
|
+
- lib/site_hook/templates/log_header.rb
|
291
307
|
- lib/site_hook/version.rb
|
292
308
|
- lib/site_hook/webhook.rb
|
293
309
|
- site_hook.gemspec
|
@@ -326,7 +342,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
326
342
|
version: '0'
|
327
343
|
requirements: []
|
328
344
|
rubyforge_project:
|
329
|
-
rubygems_version: 2.7.6
|
345
|
+
rubygems_version: 2.7.6
|
330
346
|
signing_key:
|
331
347
|
specification_version: 4
|
332
348
|
summary: Catch a POST request from a git service push webhook and build a jekyll site.
|