# File lib/standard/facets/fileutils/stage.rb, line 15
  def stage(stage_directory, source_directory, files, options={})
    return stage_directory if options[:noop] || options[:dryrun]

    stage_directory, source_directory = stage_directory.to_s, source_directory.to_s
    ## ensure existance of staging area
    rm_r(stage_directory) if File.directory?(stage_directory)
    mkdir_p(stage_directory)
    ## link files into staging area
    files.each do |f|
      src  = File.join(source_directory, f)
      file = File.join(stage_directory, f)
      if File.directory?(src)
        mkdir_p(file) unless File.exist?(file)
      else
        fdir = File.dirname(file)
        mkdir_p(fdir) unless File.exist?(fdir)
        unless File.exist?(file) and File.mtime(file) >= File.mtime(src)
          ln(src, file) #safe_ln ?
        end
      end
    end
    return stage_directory
  end