class Hookit::Resource::Directory

Public Class Methods

new(name) click to toggle source
Calls superclass method Hookit::Resource::Base::new
# File lib/hookit/resource/directory.rb, line 14
def initialize(name)
  path name unless path
  super
end

Public Instance Methods

run(action) click to toggle source
# File lib/hookit/resource/directory.rb, line 19
def run(action)
  case action
  when :create
    create!
    chown!
    chmod!
  when :delete
    delete!
  end
end

Protected Instance Methods

chmod!() click to toggle source
# File lib/hookit/resource/directory.rb, line 59
def chmod!
  if ::File.exists? path and mode
    ::File.chmod(mode, path)
  end
end
chown!() click to toggle source
# File lib/hookit/resource/directory.rb, line 52
def chown!
  return unless owner or group
  if ::File.exists? path
    `chown #{(group.nil?) ? owner : "#{owner}:#{group}"} #{path}`
  end
end
create!() click to toggle source
# File lib/hookit/resource/directory.rb, line 32
def create!
  return if ::File.exists? path
  cmd = "mkdir #{"-p " if recursive}#{path}"
  `#{cmd}`
  code = $?.exitstatus
  if code != 0
    raise Hookit::Error::UnexpectedExit, "#{cmd} failed with exit code '#{code}'"
  end
end
delete!() click to toggle source
# File lib/hookit/resource/directory.rb, line 42
def delete!
  return if not ::File.exists? path
  cmd = "rm -rf #{path}"
  `#{cmd}`
  code = $?.exitstatus
  if code != 0
    raise Hookit::Error::UnexpectedExit, "#{cmd} failed with exit code '#{code}'"
  end
end