Subversion Repositories svn.Prod repos

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

  1. #!/usr/bin/env ruby19
  2. # progname : filefind.bash
  3. # purpose  : display a directory tree
  4. #            similar to find
  5.  
  6. # =============================================================================
  7. # Functions
  8. # =============================================================================
  9.  
  10. def Usage(progname, mesg)
  11.         puts "Usage : #{progname} directory"
  12.         puts mesg
  13. end
  14.  
  15. #
  16. # dir is directory to traverse
  17. #
  18. def traverse(dir)
  19.         curdir = Dir.getwd
  20.         Dir.chdir(dir)
  21.         curdir2 = Dir.getwd
  22.         Dir.foreach(Dir.getwd) { | file |
  23.                 pfile = curdir2 + "/" +file
  24.                 if File.directory?(file) && !File.symlink?(file)
  25.                         if (file != "..") && (file != ".")
  26.                                 puts pfile
  27.                                 traverse(file)
  28.                         end
  29.                 else
  30.                         if File.file?(file) || File.symlink?(file)
  31.                                 puts "#{pfile}"
  32.                         else
  33.                                 puts "WARNING: Could not process file $pfile"
  34.                         end
  35.                 end
  36.         }
  37.         Dir.chdir(curdir)
  38. end
  39.  
  40. def start_traverse(directory)
  41.         puts directory
  42.         traverse(directory)
  43. end
  44.  
  45. # =============================================================================
  46. # MAIN
  47. # =============================================================================
  48.  
  49. progname = File.basename($0)
  50. if (ARGV.length == 1)
  51.         directory = ARGV[0]
  52.         if File.directory?(directory)
  53.                 start_traverse(directory)
  54.         else
  55.                 Usage progname, "ERROR: No directory #{directory} found"
  56.         end
  57. else
  58.         Usage progname, "ERROR: 1 argument expected"
  59. end
  60.