Class: Hawser::Baking

Inherits:
Mattock::Tasklib
  • Object
show all
Includes:
Caliph::CommandLineDSL
Defined in:
lib/hawser/baking.rb

Instance Method Summary collapse

Instance Method Details

#defineObject



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/hawser/baking.rb', line 43

def define
  in_namespace do
    Mattock::Rake::RemoteCommandTask.define_task(:create_dirs => :collect) do |task|
      task.remote_server = proxy_value.remote_server
      task.command = cmd("mkdir") do |mkdir|
        mkdir.options << "-p" #ok
        mkdir.options << keyfile_dir.abspath
      end
    end

    Mattock::Rake::CommandTask.define_task(:copy_cert => [:collect, :create_dirs]) do |task|
      task.runtime_definition do |task|
        task.command = cmd("scp") do |scp|
          scp.options << signing_cert.abspath
          scp.options << "#{remote_server.address}:#{certificate_file.abspath}"
        end
      end
    end

    Mattock::Rake::CommandTask.define_task(:copy_key => [:collect, :create_dirs]) do |task|
      task.runtime_definition do |task|
        task.command = cmd("scp") do |scp|
          scp.options << signing_key.abspath
          scp.options << "#{remote_server.address}:#{private_key.abspath}"
        end
      end
    end

    task :collect, [:target, :name] do |task, args|
      self.remote_server.address = args[:target]
      self.image_name = args[:name]
    end

    BakingCommand.define_task(:bake, [:target, :name] => [:collect, :copy_cert, :copy_key]) do |task|
      self.copy_settings_to(task)
      proxied = self.proxy_settings
      proxied.field_names = [:remote_server, :image_name, :bucket]
      proxied.to(task)
    end
  end
end

#resolve_configurationObject



36
37
38
39
40
41
# File 'lib/hawser/baking.rb', line 36

def resolve_configuration
  ephemeral_dir.absolute_path = ephemeral_dir.relative_path

  super
  resolve_paths
end