File Operations

Methods
A
C
D
E
I
M
R
Constants
REJECT_DIRS = %w( CVS SCCS RCS CVS.adm .svn )
 
Instance Public methods
all_dirs_in(dirname)
# File rails/actionwebservice/setup.rb, line 579
def all_dirs_in(dirname)
  Dir.open(dirname) {|d|
    return d.select {|n| File.dir?("#{dirname}/#{n}") } - %w(. ..) - REJECT_DIRS
  }
end
all_files_in(dirname)
# File rails/actionwebservice/setup.rb, line 569
def all_files_in(dirname)
  Dir.open(dirname) {|d|
    return d.select {|ent| File.file?("#{dirname}/#{ent}") }
  }
end
command(str)
# File rails/actionwebservice/setup.rb, line 552
def command(str)
  $stderr.puts str if verbose?
  system str or raise RuntimeError, "'system #{str}' failed"
end
diff?(new_content, path)
# File rails/actionwebservice/setup.rb, line 547
def diff?(new_content, path)
  return true unless File.exist?(path)
  new_content != File.binread(path)
end
extdir?(dir)
# File rails/actionwebservice/setup.rb, line 565
def extdir?(dir)
  File.exist?(dir + '/MANIFEST')
end
install(from, dest, mode, prefix = nil)
# File rails/actionwebservice/setup.rb, line 521
def install(from, dest, mode, prefix = nil)
  $stderr.puts "install #{from} #{dest}" if verbose?
  return if no_harm?

  realdest = prefix ? prefix + File.expand_path(dest) : dest
  realdest = File.join(realdest, File.basename(from)) if File.dir?(realdest)
  str = File.binread(from)
  if diff?(str, realdest)
    verbose_off {
      rm_f realdest if File.exist?(realdest)
    }
    File.open(realdest, 'wb') {|f|
      f.write str
    }
    File.chmod mode, realdest

    File.open("#{objdir_root()}/InstalledFiles", 'a') {|f|
      if prefix
        f.puts realdest.sub(prefix, '')
      else
        f.puts realdest
      end
    }
  end
end
make(task = '')
# File rails/actionwebservice/setup.rb, line 561
def make(task = '')
  command config('makeprog') + ' ' + task
end
mkdir_p(dirname, prefix = nil)
# File rails/actionwebservice/setup.rb, line 461
def mkdir_p(dirname, prefix = nil)
  dirname = prefix + File.expand_path(dirname) if prefix
  $stderr.puts "mkdir -p #{dirname}" if verbose?
  return if no_harm?

  # does not check '/'... it's too abnormal case
  dirs = File.expand_path(dirname).split(%r<(?=/)>)
  if %r\A[a-z]:\z/ =~ dirs[0]
    disk = dirs.shift
    dirs[0] = disk + dirs[0]
  end
  dirs.each_index do |idx|
    path = dirs[0..idx].join('')
    Dir.mkdir path unless File.dir?(path)
  end
end
move_file(src, dest)
# File rails/actionwebservice/setup.rb, line 510
def move_file(src, dest)
  File.unlink dest if File.exist?(dest)
  begin
    File.rename src, dest
  rescue
    File.open(dest, 'wb') {|f| f.write File.binread(src) }
    File.chmod File.stat(src).mode, dest
    File.unlink src
  end
end
rm_f(fname)
# File rails/actionwebservice/setup.rb, line 478
def rm_f(fname)
  $stderr.puts "rm -f #{fname}" if verbose?
  return if no_harm?

  if File.exist?(fname) or File.symlink?(fname)
    File.chmod 0777, fname
    File.unlink fname
  end
end
rm_rf(dn)
# File rails/actionwebservice/setup.rb, line 488
def rm_rf(dn)
  $stderr.puts "rm -rf #{dn}" if verbose?
  return if no_harm?

  Dir.chdir dn
  Dir.foreach('.') do |fn|
    next if fn == '.'
    next if fn == '..'
    if File.dir?(fn)
      verbose_off {
        rm_rf fn
      }
    else
      verbose_off {
        rm_f fn
      }
    end
  end
  Dir.chdir '..'
  Dir.rmdir dn
end
ruby(str)
# File rails/actionwebservice/setup.rb, line 557
def ruby(str)
  command config('rubyprog') + ' ' + str
end