Add ability to bind to a unix socket.
This commit is contained in:
parent
ad5ab6c617
commit
d71267970f
3 changed files with 17 additions and 7 deletions
11
Rakefile.rb
11
Rakefile.rb
|
@ -12,11 +12,16 @@ load "rake/tasks/nanoc.rake"
|
||||||
load "rake/tasks/submodules.rake"
|
load "rake/tasks/submodules.rake"
|
||||||
|
|
||||||
desc "Serve the website on localhost"
|
desc "Serve the website on localhost"
|
||||||
task :server, [:host, :port] do |_t, args|
|
task :server, [:protocol] do |_t, args|
|
||||||
require "server"
|
require "server"
|
||||||
build_dir = Ryo.from(YAML.load_file("./nanoc.yaml")).output_dir
|
nanoc = Ryo.from(YAML.load_file("./nanoc.yaml"))
|
||||||
h = args.to_h
|
h = args.to_h
|
||||||
s = Server.for_dir(build_dir, h.slice(:host,:port))
|
o = if h[:protocol] == 'unix'
|
||||||
|
{unix: nanoc.server.unix.path}
|
||||||
|
else
|
||||||
|
{host: nanoc.server.tcp.host, port: nanoc.server.tcp.port}
|
||||||
|
end
|
||||||
|
s = Server.for_dir(nanoc.output_dir, o)
|
||||||
s.start(block: true)
|
s.start(block: true)
|
||||||
rescue Interrupt
|
rescue Interrupt
|
||||||
s.stop
|
s.stop
|
||||||
|
|
|
@ -19,3 +19,10 @@ data_sources:
|
||||||
encoding: UTF-8
|
encoding: UTF-8
|
||||||
content_dir: src/
|
content_dir: src/
|
||||||
layouts_dir: src/layouts
|
layouts_dir: src/layouts
|
||||||
|
|
||||||
|
server:
|
||||||
|
unix:
|
||||||
|
path: /tmp/al-quran.reflectslight.io
|
||||||
|
tcp:
|
||||||
|
host: 127.0.0.1
|
||||||
|
port: 7777
|
||||||
|
|
|
@ -17,10 +17,9 @@ class Server
|
||||||
def self.for_dir(path, options = {})
|
def self.for_dir(path, options = {})
|
||||||
host = options.delete(:host) || "127.0.0.1"
|
host = options.delete(:host) || "127.0.0.1"
|
||||||
port = options.delete(:port) || 7777
|
port = options.delete(:port) || 7777
|
||||||
|
unix = options.delete(:unix) || false
|
||||||
new app(path), options.merge!(
|
new app(path), options.merge!(
|
||||||
binds: ["tcp://#{host}:#{port}"],
|
binds: [unix ? "unix://#{unix}" : "tcp://#{host}:#{port}"]
|
||||||
tcp_host: host,
|
|
||||||
tcp_port: port
|
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -45,7 +44,6 @@ class Server
|
||||||
|
|
||||||
def default_options
|
def default_options
|
||||||
{
|
{
|
||||||
supported_http_methods: %w[GET HEAD],
|
|
||||||
min_threads: 1,
|
min_threads: 1,
|
||||||
max_threads: 5,
|
max_threads: 5,
|
||||||
workers: 1
|
workers: 1
|
||||||
|
|
Loading…
Reference in a new issue