Sha256: 72c94d7967794611e8cf1526e6214914eaa612073c99f73c60c7ea291c2ecdb8

Contents?: true

Size: 1.33 KB

Versions: 1

Compression:

Stored size: 1.33 KB

Contents

module LogicalConstruct
  module GroundControl
    class Setup < Mattock::TaskLib

      default_namespace :setup

      settings(
        :remote_server => nested( :address => nil, :user => "root"),
        :construct_dir => "/var/logical-construct"
      )

      nil_fields :valise

      def default_configuration(core)
        super
        core.copy_settings_to(self)
      end

      def define
        in_namespace do
          task :collect, [:address] do |t, args|
            remote_server.address = args[:address]
          end

          task_spine(:collect, :local_setup, :remote_groundwork, :remote_config, :remote_setup)
          task :complete => [:local_setup, :remote_setup]
        end

        desc "Set up a remote server to act as a Construct foundation"
        task root_task,[:address] => self[:complete]
      end

      def default_subtasks
        in_namespace do
          CreateConstructDirectory.new(self)
          build_files = BuildFiles.new(self)
          CopyFiles.new(self, build_files)
          InstallInit.new(self)
        end
      end
    end
  end
end

require 'logical-construct/ground-control/setup/build-files'
require 'logical-construct/ground-control/setup/create-construct-directory'
require 'logical-construct/ground-control/setup/copy-files'
require 'logical-construct/ground-control/setup/install-init'

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
logical-construct-0.0.1 lib/logical-construct/ground-control/setup.rb