diff --git a/bin/siteleaf b/bin/siteleaf index 3da2d82..9cd9b73 100755 --- a/bin/siteleaf +++ b/bin/siteleaf @@ -19,6 +19,7 @@ Commands: pull Pulls files for configured site from Siteleaf push Pushes all files in dir to configured site publish Publish website to hosting provider + preview Generate cloud preview help Prints this help document version Prints the siteleaf gem version @@ -191,6 +192,24 @@ def publish(site_id, quiet = true) end end +def preview(site_id, quiet = true) + site = Siteleaf::Site.new(id: site_id) + job = site.preview + + if quiet + puts "=> Preview queued.\n" + else + last_msg = nil + job.stream do |s| + if (msg = s["message"]) && (msg != last_msg) + puts msg + last_msg = msg + end + end + puts "=> Preview completed: https://#{site_id}.cloud-preview.siteleaf.com\n" + end +end + def config(site) Siteleaf.save_settings({site_id: site.id}, '.siteleaf.yml') puts "=> Site configured." @@ -283,6 +302,16 @@ begin raise "Site not configured, run `siteleaf config yoursite.com`.\n" end end + when 'preview' + site_id = get_site_id + if auth != false + quiet = %w[-q --quiet].include?(ARGV[1]) && ARGV[1] + if site_id + preview(site_id, quiet) + else + raise "Site not configured, run `siteleaf config yoursite.com`.\n" + end + end when 'import' site_id = get_site_id if auth != false diff --git a/lib/siteleaf/site.rb b/lib/siteleaf/site.rb index 4dc8a01..df12877 100644 --- a/lib/siteleaf/site.rb +++ b/lib/siteleaf/site.rb @@ -42,6 +42,11 @@ def publish result = Client.post "#{entity_endpoint}/publish", {} Job.new(id: result["job_id"]) if result end + + def preview + result = Client.post "#{entity_endpoint}/preview", {} + Job.new(id: result["job_id"]) if result + end def full_url "http://#{domain}" diff --git a/lib/siteleaf/version.rb b/lib/siteleaf/version.rb index a6d7b22..4729bb2 100644 --- a/lib/siteleaf/version.rb +++ b/lib/siteleaf/version.rb @@ -1,3 +1,3 @@ module Siteleaf - VERSION = "2.1.1" + VERSION = "2.1.2" end