lib/dato/cli.rb in dato-0.6.18 vs lib/dato/cli.rb in dato-0.7.0

- old
+ new

@@ -1,11 +1,10 @@ # frozen_string_literal: true require 'thor' require 'dato/dump/runner' require 'dato/dump/ssg_detector' -require 'dato/watch/site_change_watcher' require 'listen' module Dato class Cli < Thor package_name 'DatoCMS' @@ -24,29 +23,30 @@ extra_headers: { 'X-Reason' => 'dump', 'X-SSG' => Dump::SsgDetector.new(Dir.pwd).detect } ) + loader = Dato::Local::Loader.new(client, preview_mode) + print 'Fetching content from DatoCMS... ' + loader.load if watch_mode - site_id = client.request(:get, '/site')['data']['id'] - semaphore = Mutex.new - thread_safe_dump(semaphore, config_file, client, preview_mode) + thread_safe_dump(semaphore, config_file, client, preview_mode, loader) - Dato::Watch::SiteChangeWatcher.new(site_id).connect do - thread_safe_dump(semaphore, config_file, client, preview_mode) + loader.watch do + thread_safe_dump(semaphore, config_file, client, preview_mode, loader) end watch_config_file(config_file) do - thread_safe_dump(semaphore, config_file, client, preview_mode) + thread_safe_dump(semaphore, config_file, client, preview_mode, loader) end sleep else - Dump::Runner.new(config_file, client, preview_mode).run + Dump::Runner.new(config_file, client, preview_mode, loader).run end end desc 'check', 'checks the presence of a DatoCMS token' def check @@ -76,12 +76,12 @@ only: /#{Regexp.quote(File.basename(config_file))}/, &block ).start end - def thread_safe_dump(semaphore, config_file, client, preview_mode) + def thread_safe_dump(semaphore, config_file, client, preview_mode, loader) semaphore.synchronize do - Dump::Runner.new(config_file, client, preview_mode).run + Dump::Runner.new(config_file, client, preview_mode, loader).run end end end end end