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