Implement `file_write' action

This commit is contained in:
Thibault Jouan
2013-08-02 15:36:36 +00:00
parent 188ca2e08d
commit 892a9862fc
11 changed files with 111 additions and 8 deletions

View File

@@ -2,6 +2,7 @@
require 'producer/core/action'
require 'producer/core/actions/echo'
require 'producer/core/actions/shell_command'
require 'producer/core/actions/file_writer'
# condition tests (need to be defined before the condition DSL)
require 'producer/core/test'

View File

@@ -0,0 +1,19 @@
module Producer
module Core
module Actions
class FileWriter < Action
def apply
env.remote.fs.file_write path, content
end
def path
arguments[0]
end
def content
arguments[1]
end
end
end
end
end

View File

@@ -17,6 +17,12 @@ module Producer
rescue Net::SFTP::StatusException
false
end
def file_write(path, content)
sftp.file.open path, 'w' do |f|
f.write content
end
end
end
end
end

View File

@@ -19,6 +19,8 @@ module Producer
define_action :echo, Actions::Echo
define_action :sh, Actions::ShellCommand
define_action :file_write, Actions::FileWriter
attr_accessor :actions
def initialize(&block)