middleman-deploy/lib/middleman-deploy/extension.rb

61 lines
1.1 KiB
Ruby
Raw Normal View History

2012-08-20 19:52:29 +02:00
# Require core library
require "middleman-core"
# Extension namespace
2012-08-20 21:59:32 +02:00
module Middleman
module Deploy
2012-08-22 23:15:37 +02:00
2012-08-30 05:50:23 +02:00
class Options < Struct.new(:method, :host, :port, :user, :path, :clean); end
2012-08-20 21:59:32 +02:00
class << self
2012-08-22 23:15:37 +02:00
2012-08-22 20:45:33 +02:00
def options
@@options
end
2012-08-22 23:15:37 +02:00
def registered(app, options_hash={}, &block)
options = Options.new(options_hash)
yield options if block_given?
2012-08-30 05:50:23 +02:00
options.method ||= :rsync
options.port ||= 22
options.clean ||= false
2012-08-20 21:59:32 +02:00
2012-08-22 20:45:33 +02:00
@@options = options
app.send :include, Helpers
2012-08-20 21:59:32 +02:00
app.after_configuration do
2012-08-30 05:50:23 +02:00
if (options.method == :rsync)
if (!options.host || !options.user || !options.path)
raise <<EOF
ERROR: middleman-deploy is not setup correctly. host, user, and path
2012-08-22 19:04:11 +02:00
*must* be set in config.rb. For example:
activate :deploy do |deploy|
deploy.user = "tvaughan"
deploy.host = "www.example.com"
deploy.path = "/srv/www/site"
end
2012-08-20 21:59:32 +02:00
EOF
2012-08-30 05:50:23 +02:00
end
end
2012-08-20 21:59:32 +02:00
end
2012-08-20 19:52:29 +02:00
end
2012-08-22 23:15:37 +02:00
2012-08-20 21:59:32 +02:00
alias :included :registered
2012-08-22 23:15:37 +02:00
2012-08-20 19:52:29 +02:00
end
2012-08-22 20:45:33 +02:00
module Helpers
2012-08-22 21:37:37 +02:00
def options
::Middleman::Deploy.options
2012-08-22 20:45:33 +02:00
end
end
2012-08-20 21:59:32 +02:00
end
2012-08-20 19:52:29 +02:00
end