lib/docman/docroot_controller.rb in docman-0.0.5 vs lib/docman/docroot_controller.rb in docman-0.0.6
- old
+ new
@@ -1,63 +1,51 @@
require 'docman/builders/builder'
-require 'docman/builders/common_builder'
-require 'docman/builders/git_builder'
+require 'docman/builders/dir_builder'
+require 'docman/builders/git_direct_builder'
+require 'docman/builders/git_strip_builder'
+require 'docman/builders/drupal_drush_builder'
require 'docman/deployers/deployer'
require 'docman/deployers/git_deployer'
require 'docman/deployers/common_deployer'
+require 'docman/command'
+require 'docman/composite_command'
+require 'docman/builders/commands/create_symlink_cmd'
+require 'docman/builders/commands/execute_script_cmd'
+require 'docman/builders/commands/clean_changed_cmd'
+require 'docman/builders/commands/git_commit_cmd'
# TODO: make universal logging class.
module Docman
class DocrootController
- attr_reader :docroot_dir
+ attr_reader :docroot_dir, :docroot_config
def initialize(docroot_dir, deploy_target_name, options = {})
@deploy_target = Docman::Application.instance.config['deploy_targets'][deploy_target_name]
+ @deploy_target_name = deploy_target_name
Docman::Application.instance.deploy_target = @deploy_target
docroot_config = DocrootConfig.new(docroot_dir, @deploy_target)
- @deployer = Docman::Deployers::Deployer.create(@deploy_target['handler'], @deploy_target)
@docroot_dir = docroot_dir
@docroot_config = docroot_config
end
- def deploy(name, type, version)
- puts "Deploy #{name}, type: #{type}"
- @docroot_config.states_dependin_on(name, version).each do |state_name, state|
- deploy_dir_chain(state_name, @docroot_config.info_by(name))
- @deployer.push(@docroot_config.root_dir, state_name)
- end
+ def build(state_name)
+ execute(state_name)
end
- def build(state)
- build_recursive(state)
- @deployer.push(@docroot_config.root_dir, state)
- end
-
- def build_recursive(state, info = nil)
- info = info ? info : @docroot_config.structure
- build_dir(state, info)
-
- info['children'].each do |child|
- build_recursive(state, child)
+ def deploy(name, type, version)
+ @docroot_config.states_dependin_on(name, version).keys.each do |state_name|
+ execute(state_name, name)
end
end
- def deploy_dir_chain(state, info)
- @docroot_config.chain(info).each do |name, item|
- if item.need_rebuild?
- build_recursive(state, item)
- return
- elsif
- build_dir(state, item)
- end
- end
- end
-
- def build_dir(state, info)
- info.state = state
- @deployer.build(@docroot_config.root(info), info)
+ def execute(state, name = nil)
+ #Docman::Application.instance.config.environment(state_name, @deploy_target_name)
+ params = @deploy_target
+ params['state'] = state
+ params['name'] = name
+ Docman::Deployers::Deployer.create(params, self).perform
end
end
end
\ No newline at end of file