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"
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
|