class Wright::Provider::Directory

Directory provider. Used as a provider for {Resource::Directory}.

Public Instance Methods

create() click to toggle source

Creates or updates the directory.

@return [void]

# File lib/wright/provider/directory.rb, line 14
def create
  fail Errno::EEXIST, dirname_expanded if regular_file?

  dir_permissions = permissions
  unless_uptodate(:create, "directory already created: '#{dir_name}'") do
    unless_dry_run("create directory: '#{dir_name}'") do
      FileUtils.mkdir_p(dirname_expanded)
      dir_permissions.update unless dir_permissions.uptodate?
    end
  end
end
remove() click to toggle source

Removes the directory.

@return [void]

# File lib/wright/provider/directory.rb, line 29
def remove
  if ::File.exist?(dirname_expanded) &&
     !::File.directory?(dirname_expanded)
    fail "'#{dirname_expanded}' exists but is not a directory"
  end

  unless_uptodate(:remove, "directory already removed: '#{dir_name}'") do
    unless_dry_run("remove directory: '#{dir_name}'") do
      FileUtils.rmdir(dirname_expanded)
    end
  end
end

Private Instance Methods

dir_name() click to toggle source
# File lib/wright/provider/directory.rb, line 44
def dir_name
  resource.name
end
dirname_expanded() click to toggle source
# File lib/wright/provider/directory.rb, line 67
def dirname_expanded
  ::File.expand_path(dir_name)
end
permissions() click to toggle source
# File lib/wright/provider/directory.rb, line 48
def permissions
  Wright::Util::FilePermissions.create_from_resource(resource,
                                                     :directory)
end
regular_file?() click to toggle source
# File lib/wright/provider/directory.rb, line 63
def regular_file?
  ::File.exist?(dirname_expanded) && !::File.directory?(dirname_expanded)
end
uptodate?(action) click to toggle source
# File lib/wright/provider/directory.rb, line 53
def uptodate?(action)
  case action
  when :create
    ::File.directory?(dirname_expanded) && permissions.uptodate?
  when :remove
    !::File.exist?(dirname_expanded) &&
      !::File.directory?(dirname_expanded)
  end
end