lib/munge/cli/commands/server.rb in munge-0.17.0 vs lib/munge/cli/commands/server.rb in munge-0.18.0
- old
+ new
@@ -1,12 +1,14 @@
module Munge
module Cli
module Commands
class Server
- def initialize(bootloader, livereload:)
+ def initialize(bootloader, livereload:, host:, port:)
@bootloader = bootloader
@listener = listener
+ @view_host = host
+ @view_port = port
@livereload =
if livereload
if Gem.loaded_specs.key?("reel")
Munge::Extras::Livereload::Main.new(true)
else
@@ -21,24 +23,29 @@
def call
@listener.start
munge_build
- system("munge view")
+ munge_view
rescue Interrupt
@listener.stop
end
private
def listener
require "listen"
listen = Listen.to(@bootloader.root_path) do
- built_files = munge_build
+ begin
+ built_files = munge_build
- @livereload.notify_changes(files: built_files)
+ @livereload.notify_changes(files: built_files)
+ rescue => e
+ puts "ERROR: #{e.message}"
+ puts e.backtrace.map { |line| "\t" + line }.join("\n")
+ end
GC.start
end
ignore(listen, ".sass-cache")
@@ -53,22 +60,35 @@
listener.ignore(/^#{Regexp.escape(pattern)}/)
end
end
def munge_build
- bootloader =
- Munge::Bootloader.new(root_path: @bootloader.root_path)
-
build_command =
Munge::Cli::Commands::Build.new(
- bootloader,
+ new_bootloader,
dry_run: false,
reporter: "Default",
verbosity: "written",
build_root: ENV["BUILD_ROOT"]
)
build_command.call
+ end
+
+ def munge_view
+ view_command =
+ Munge::Cli::Commands::View.new(
+ new_bootloader,
+ host: @view_host,
+ port: @view_port,
+ build_root: ENV["BUILD_ROOT"]
+ )
+
+ view_command.call
+ end
+
+ def new_bootloader
+ Munge::Bootloader.new(root_path: @bootloader.root_path)
end
end
end
end
end