Sha256: 47d74c58a0ddd6e2c663fb5acd27fe85af7a5beabb147015654c6d094f76a6e4

Contents?: true

Size: 850 Bytes

Versions: 4

Compression:

Stored size: 850 Bytes

Contents

module SousChef
  module Resource
    class Log < Base
      def initialize(context, name=nil, &block)
        super

        @stdout = nil
        @stderr = nil
      end

      def stdout(stdout=nil)
        set_or_return(:stdout, stdout)
      end

      def stderr(stderr=nil)
        set_or_return(:stderr, stderr)
      end

      def to_script
        @script ||= begin
          setup
          unless @stdout || @stderr
            @stdout, @stderr = name, "&1"
          end
          append exec_command(escape_path(@stdout), escape_path(@stderr))
          super
        end
      end

      protected
        def exec_command(stdout, stderr)
          args = []
          args << "1>#{escape_path(stdout)}" if stdout
          args << "2>#{escape_path(stderr)}" if stderr
          "exec #{args.join(' ')}"
        end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
sous_chef-0.0.4 lib/sous_chef/resource/log.rb
sous_chef-0.0.3 lib/sous_chef/resource/log.rb
sous_chef-0.0.2 lib/sous_chef/resource/log.rb
sous_chef-0.0.1 lib/sous_chef/resource/log.rb