class Logrotate

Public Instance Methods

deploy() click to toggle source
# File lib/dust/recipes/logrotate.rb, line 3
def deploy 
  return unless @node.install_package 'logrotate'
  
  @config.each do |name, rule|
    @node.messages.add("deploying logrotate entry for '#{name}'\n")

    unless rule['path']
      @node.messages.add('path not specified', :indent => 2).failed
      next
    end
    
    file = "#{rule['path']} {\n"
    
    rule['args'] ||= default_args
    rule['args'].each { |arg| file << "    #{arg}\n" }

    rule['scripts'] ||= {}
    rule['scripts'].each do |script, commands|
      file << "    #{script}\n"
      commands.each { |cmd| file << "        #{cmd}\n" }
    end
      
    file << "}\n"
    deploy_rule name, file
  end
  
end
status() click to toggle source
# File lib/dust/recipes/logrotate.rb, line 32
def status
  @node.messages.add.print_output(@node.exec('ls /etc/logrotate.d/*'))
end

Private Instance Methods

default_args() click to toggle source
# File lib/dust/recipes/logrotate.rb, line 39
def default_args
  [ 'rotate 7', 'daily', 'missingok', 'notifempty', 'copytruncate', 'compress' ]
end
deploy_rule(name, file) click to toggle source
# File lib/dust/recipes/logrotate.rb, line 47
def deploy_rule name, file
  @node.write "/etc/logrotate.d/#{name}", file, :indent => 2
  @node.chown 'root:root', "/etc/logrotate.d/#{name}", :indent => 2    
end
remove_rules() click to toggle source
# File lib/dust/recipes/logrotate.rb, line 43
def remove_rules
  @node.rm '/etc/logrotate.d/*'
end