Sha256: e47ca73c5f8b56f1f6f2b452542e291ee766d5934d1fbef827c295489b0a4cc3
Contents?: true
Size: 1.67 KB
Versions: 1
Compression:
Stored size: 1.67 KB
Contents
require 'thor/actions/empty_directory' class Thor module Actions # Create a new file relative to the destination root from the given source. # # ==== Parameters # destination<String>:: the relative path to the destination root. # source<String|NilClass>:: the relative path to the source root. # config<Hash>:: give :verbose => false to not log the status. # :: give :symbolic => false for hard link. # # ==== Examples # # create_link "config/apache.conf", "/etc/apache.conf" # def create_link(destination, *args, &block) config = args.last.is_a?(Hash) ? args.pop : {} source = args.first action CreateLink.new(self, destination, source, config) end alias :add_link :create_link # CreateLink is a subset of CreateFile, which instead of taking a block of # data, just takes a source string from the user. # class CreateLink < CreateFile #:nodoc: attr_reader :data # Checks if the content of the file at the destination is identical to the rendered result. # # ==== Returns # Boolean:: true if it is identical, false otherwise. # def identical? exists? && File.identical?(render, destination) end def invoke! invoke_with_conflict_check do FileUtils.mkdir_p(File.dirname(destination)) # Create a symlink by default config[:symbolic] ||= true File.unlink(destination) if exists? if config[:symbolic] File.symlink(render, destination) else File.link(render, destination) end end given_destination end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
thor-0.14.5 | lib/thor/actions/create_link.rb |