Module: FileUtils
- Defined in:
- lib/berkshelf/core_ext/fileutils.rb
Defined Under Namespace
Classes: Entry_
Class Method Summary collapse
-
.link_entry(src, dest, dereference_root = false, force = false) ⇒ Object
Hard links a file system entry
srctodest. -
.ln_r(src, dest, options = {}) ⇒ Object
Options: noop verbose dereference_root force.
Class Method Details
.link_entry(src, dest, dereference_root = false, force = false) ⇒ Object
Hard links a file system entry src to dest. If src is a directory, this method links its contents recursively.
Both of src and dest must be a path name. src must exist, dest must not exist.
If dereference_root is true, this method dereference tree root.
If force is true, this method removes each destination file before copy.
52 53 54 55 56 57 58 |
# File 'lib/berkshelf/core_ext/fileutils.rb', line 52 def link_entry(src, dest, dereference_root = false, force = false) Entry_.new(src, nil, dereference_root).traverse do |ent| destent = Entry_.new(dest, ent.rel, false) File.unlink destent.path if force && File.file?(destent.path) ent.link destent.path end end |
.ln_r(src, dest, options = {}) ⇒ Object
Note:
taken from proposed FileUtils feature:
Options: noop verbose dereference_root force
Hard link src to dest. If src is a directory, this method links all its contents recursively. If dest is a directory, links src to dest/src.
src can be a list of files.
# Installing ruby library "mylib" under the site_ruby
FileUtils.rm_r site_ruby + '/mylib', :force
FileUtils.ln_r 'lib/', site_ruby + '/mylib'
# Examples of copying several files to target directory.
FileUtils.ln_r %w(mail.rb field.rb debug/), site_ruby + '/tmail'
FileUtils.ln_r Dir.glob('*.rb'), '/home/aamine/lib/ruby', :noop => true, :verbose => true
# If you want to copy all contents of a directory instead of the
# directory itself, c.f. src/x -> dest/x, src/y -> dest/y,
# use following code.
FileUtils.ln_r 'src/.', 'dest' # cp_r('src', 'dest') makes src/dest,
# but this doesn't.
27 28 29 30 31 32 33 34 35 36 |
# File 'lib/berkshelf/core_ext/fileutils.rb', line 27 def ln_r(src, dest, = {}) , OPT_TABLE['ln_r'] "ln -r#{options[:force] ? ' --remove-destination' : ''} #{[src,dest].flatten.join ' '}" if [:verbose] return if [:noop] = .dup [:dereference_root] = true unless .key?(:dereference_root) fu_each_src_dest(src, dest) do |s, d| link_entry s, d, [:dereference_root], [:force] end end |