lib/zine/server.rb in zine-0.2.0 vs lib/zine/server.rb in zine-0.3.0

- old
+ new

@@ -1,20 +1,27 @@ +require 'highline' require 'rainbow' require 'rack' require 'thin' +require 'zine/upload' +require 'zine/watcher' module Zine # Local preview web server class Server - def initialize(root) + # def initialize(_posts, rel_path_build, _rel_path_source, upload_options, + def initialize(rel_path_build, upload_options, delete_array, upload_array) + @delete_array = delete_array + @upload_array = upload_array + root = File.absolute_path(rel_path_build) motd - Thin::Server.start('127.0.0.1', 8080) do + + @thin = Thin::Server.new('127.0.0.1', 8080) do use Rack::Static, urls: ['/'], index: 'index.html', root: root - now = Time.now a_long_time = 100**4 run lambda { |_env| [200, { @@ -24,11 +31,36 @@ 'Cache-Control' => 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0', 'Pragma' => 'no-cache', 'Expires' => now - a_long_time }, - File.open(File.join(root, 'index.html'), File::RDONLY)] + [File.open(File.join(root, 'index.html'), File::RDONLY)]] } + end + @thin.start + + return if upload_options['method'] == 'none' || + (@delete_array.empty? && @upload_array.empty?) + cli = HighLine.new + answer = cli.ask('Upload files? (Y/n)') { |q| q.default = 'Y' } + return if answer != 'Y' + file_upload rel_path_build, upload_options + end + + # deploy + def file_upload(rel_path_build, upload_options) + puts Rainbow('Connecting...').green + begin + upload = Zine::Upload.new rel_path_build, upload_options, + # @guard.delete_array, @guard.upload_array + @delete_array, @upload_array + upload.delete + upload.deploy + rescue Errno::ENETUNREACH + puts Rainbow("Unable to connect to #{upload_options['host']}").red + rescue Net::SSH::AuthenticationFailed + puts Rainbow("Authentication failed for #{upload_options['host']}").red + puts 'Check your credential file, and maybe run ssh-add?' end end def motd puts "\nPreview running on " +