site_hook 0.7.0 → 0.8.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a179e2e28a03138fe1607d9b7a1b7402dcb9a0d6a217c343ba38ae5697b97e19
4
- data.tar.gz: e5c47b34f65dc0ab9dfdbc1632869f4654a7ff8386947f237a60cfb84332b871
3
+ metadata.gz: faa8b1808f36f0c69588f9590568133fb9b2a6288a3077d9aba94d197786c3ee
4
+ data.tar.gz: 1972b2bb6b896b69b06b9967a9e21faf175e0f1dff4165859a7a71bec018098c
5
5
  SHA512:
6
- metadata.gz: c1cd3c572ea15320ec9e76f7be95d5bf157e9d98f415cfa4e0acc94672aaa036ef0b0e21a57758a2980190f0f0d972e040d21a28ad80eb3b291ccb5be4deb923
7
- data.tar.gz: 804b1103f68ab6661391058ba37186a1a75d3922c8e931727ea6a672b047207e307f18e3ee690f0219556096dc462ef97951376f5b1685ba5d02d606d717fae5
6
+ metadata.gz: 1dce31e06943728aa637c941bedc4baac41bed34010d1bc90b5749d509605a048400e926a42dd1392577b216e2fde6cc93bb80a1b875529f8fdcbe46bde8f96e
7
+ data.tar.gz: 8b4948f0045924d7b2b802accd893d7da2c2978daa75966253e55284cbaa8584296854c12b81b1b000650761d087de1b243977750074d11ea018527fbbd7215e
@@ -20,6 +20,10 @@ module SiteHook
20
20
  autoload :Gem, 'site_hook/gem'
21
21
  autoload :Paths, 'site_hook/paths'
22
22
  # class SassHandler (inherits from Sinatra::Base)
23
+ module_function
24
+ def self.set_options(name, value)
25
+ SiteHook.const_set("#{name.upcase}", value)
26
+ end
23
27
  class SassHandler < Sinatra::Base
24
28
  set :views, Pathname(app_file).dirname.join('site_hook', 'static', 'sass').to_s
25
29
  get '/css/*.css' do
@@ -39,7 +39,7 @@ module SiteHook
39
39
  jekyll_source = Jekyll.instance_variable_get('@jekyll_source')
40
40
  build_dest = Jekyll.instance_variable_get('@build_dest')
41
41
  log = Jekyll.instance_variable_get('@log')
42
- Open3.popen2e({'BUNDLE_GEMFILE' => Pathname(jekyll_source).join('Gemfile').to_path}, "bundle exec jekyll build --source #{Pathname(jekyll_source).realdirpath.to_path} --destination #{Pathname(build_dest).to_path}") { |in_io, outerr_io, thr|
42
+ Open3.popen2e({'BUNDLE_GEMFILE' => Pathname(jekyll_source).join('Gemfile').to_path}, "bundle exec jekyll build --source #{Pathname(jekyll_source).realdirpath.to_path} --destination #{Pathname(build_dest).to_path} --config #{Pathname(jekyll_source).join(@options[:config])}") { |in_io, outerr_io, thr|
43
43
  # pid = thr.pid
44
44
 
45
45
  outerr = outerr_io.read.lines
@@ -77,10 +77,11 @@ module SiteHook
77
77
  # @param [String,Pathname] jekyll_source Jekyll Source
78
78
  # @param [String,Pathname] build_dest Build Destination
79
79
  # @param [BuildLog] logger Build Logger Instance
80
- def self.build(jekyll_source, build_dest, logger)
80
+ def self.build(jekyll_source, build_dest, logger, options:)
81
81
  @jekyll_source = jekyll_source
82
82
  @build_dest = build_dest
83
83
  @log = logger
84
+ @options = options
84
85
  instance = self::Build.new
85
86
  meths = [instance.do_grab_version, instance.do_pull, instance.do_build]
86
87
  begin
@@ -17,10 +17,11 @@ module SiteHook
17
17
  method_option(:log_levels, type: :hash, banner: 'LEVELS', default: SiteHook::Logs.log_levels)
18
18
  method_option :host, type: :string, banner: 'BINDHOST', default: JPHRC.fetch('host', '127.0.0.1')
19
19
  method_option :port, type: :string, banner: 'BINDPORT', default: JPHRC.fetch('port', 9090)
20
+ method_option :config, type: :string, banner: 'CONFIGFILE', default: '_config.yml'
20
21
  desc 'listen', 'Start SiteHook'
21
22
  def listen
22
23
  SiteHook.mklogdir unless SiteHook::Paths.logs.exist?
23
- SiteHook::Webhook.set_bind(options[:host], options[:port])
24
+ SiteHook::Webhook.set_options(options[:host], options[:port], options[:config])
24
25
  SiteHook::Webhook.run!
25
26
  end
26
27
  end
@@ -1,3 +1,3 @@
1
1
  module SiteHook
2
- VERSION = "0.7.0"
2
+ VERSION = "0.8.0"
3
3
  end
@@ -15,9 +15,15 @@ module SiteHook
15
15
  BUILDLOG = SiteHook::HookLogger::BuildLog.new(SiteHook::Logs.log_levels['build']).log
16
16
  APPLOG = SiteHook::HookLogger::AppLog.new(SiteHook::Logs.log_levels['app']).log
17
17
  JPHRC = YAML.load_file(Pathname(Dir.home).join('.jph', 'config'))
18
- def self.set_bind(host, port)
18
+ def self.set_bind(host, port, config)
19
19
  self.set port: port
20
20
  self.set bind: host
21
+ if config == '_config.yml'
22
+ SiteHook.set_options(:BUILD_CONFIG, '_config.yml')
23
+ else
24
+ SiteHook.set_options(:BUILD_CONFIG, config)
25
+ end
26
+
21
27
  end
22
28
  set server: %w[thin]
23
29
  set quiet: true
@@ -146,17 +152,22 @@ module SiteHook
146
152
  end
147
153
  if Webhook.verified?(req_body.to_s, signature, project['hookpass'], plaintext: plaintext, service: service)
148
154
  BUILDLOG.info 'Building...'
155
+ begin
156
+ jekyllbuild = SiteHook::Senders::Jekyll.build(project['src'], project['dst'], BUILDLOG, options: {config: SiteHook::BUILD_CONFIG})
157
+ jekyll_status = jekyllbuild
158
+ case jekyll_status
159
+
160
+ when 0
161
+ status 200
162
+ headers 'Content-Type' => 'application/json'
163
+ body { { 'status': 'success' }.to_json }
164
+ when -1, -2, -3
165
+ halt 400, { 'Content-Type' => 'application/json' }, { 'status': 'exception', error: jekyll_status.fetch(:message).to_s }
149
166
 
150
- jekyllbuild = SiteHook::Senders::Jekyll.build(project['src'], project['dst'], BUILDLOG)
151
- jekyll_status = jekyllbuild
152
- case jekyll_status
167
+ end
153
168
 
154
- when 0
155
- status 200
156
- headers 'Content-Type' => 'application/json'
157
- body { { 'status': 'success' }.to_json }
158
- when -1, -2, -3
159
- halt 400, { 'Content-Type' => 'application/json' }, { 'status': 'exception', error: jekyll_status.fetch(:message).to_s }
169
+ rescue => e
170
+ halt 500, { 'Content-Type' => 'application/json' }, { 'status': 'exception', error: e.to_s}
160
171
 
161
172
  end
162
173
 
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.7.0
4
+ version: 0.8.0
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-01-10 00:00:00.000000000 Z
11
+ date: 2019-02-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport