Class: Wright::Provider::Symlink

Inherits:
Wright::Provider show all
Defined in:
lib/wright/provider/symlink.rb

Overview

Symlink provider. Used as a provider for Resource::Symlink.

Constant Summary

Constants inherited from Wright::Provider

PROVIDER_DIR

Instance Method Summary collapse

Methods inherited from Wright::Provider

#initialize, #updated?

Constructor Details

This class inherits a constructor from Wright::Provider

Instance Method Details

#createvoid

This method returns an undefined value.

Creates or updates the symlink.



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/wright/provider/symlink.rb', line 12

def create
  if exist?
    symlink = symlink_to_s(@resource.name, @resource.to)
    Wright.log.debug "symlink already created: #{symlink}"
    return
  end

  fail Errno::EEXIST, link_name if regular_file?
  create_link
  @updated = true
end

#removevoid

This method returns an undefined value.

Removes the symlink.



27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/wright/provider/symlink.rb', line 27

def remove
  if ::File.exist?(link_name) && !::File.symlink?(link_name)
    fail "'#{link_name}' is not a symlink"
  end

  if ::File.symlink?(link_name)
    remove_symlink
    @updated = true
  else
    Wright.log.debug "symlink already removed: '#{@resource.name}'"
  end
end