module Sprinkle module Installers # Beware, strange "installer" coming your way. # # = Text configuration installer # # This installer pushes simple configuration into a file. # # == Example Usage # # Installing magic_beans into apache2.conf # # package :magic_beans do # push_text 'magic_beans', '/etc/apache2/apache2.conf' # end # # If you user has access to 'sudo' and theres a file that requires # priveledges, you can pass :sudo => true # # package :magic_beans do # push_text 'magic_beans', '/etc/apache2/apache2.conf', :sudo => true # end # # A special verify step exists for this very installer # its known as file_contains, it will test that a file indeed # contains a substring that you send it. # class PushText < Installer attr_accessor :text, :path #:nodoc: def initialize(parent, text, path, options={}, &block) #:nodoc: super parent, options, &block @text = text @path = path end protected def install_commands #:nodoc: "echo -e '#{@text.gsub("'", "'\\\\''").gsub("\n", '\n')}' |#{'sudo ' if option?(:sudo)}tee -a #{@path}" end end end end