Subversion Repositories svn.Prod repos

Rev

Rev 43 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
33 - 1
#!/usr/bin/env ruby
2 ls 2
# =============================================================================
3
# Create
43 - 4
# name  : Andre Rikkert de Koe          date:   Apr 2011
2 ls 5
# descr : filefind
44 - 6
#         This is a demo of programming in the Ruby language.
2 ls 7
#         Its part of a project to implement a program to create a directory
8
#         tree similar to the output of the Unix find program.
9
# EUID  : Any user who has read access to all the files being searched for.
10
# run   : interactive
11
#
12
# Changes
13
# name  :                               date:
14
# descr : short description
15
#
16
# =============================================================================
17
 
18
# =============================================================================
19
# Functions
20
# =============================================================================
21
 
22
def Usage(progname, mesg)
37 - 23
        puts "Usage: #{progname} directory"
2 ls 24
        puts mesg
25
end
26
 
27
#
28
# dir is directory to traverse
29
#
30
def traverse(dir)
31
        curdir = Dir.getwd
32
        Dir.chdir(dir)
33
        curdir2 = Dir.getwd
34
        Dir.foreach(Dir.getwd) { | file |
35
                pfile = curdir2 + "/" +file
36
                if File.directory?(file) && !File.symlink?(file)
37
                        if (file != "..") && (file != ".")
38
                                puts pfile
39
                                traverse(file)
40
                        end
41
                else
42
                        if File.file?(file) || File.symlink?(file)
43
                                puts "#{pfile}"
44
                        else
45
                                puts "WARNING: Could not process file $pfile"
46
                        end
47
                end
48
        }
49
        Dir.chdir(curdir)
50
end
51
 
52
def start_traverse(directory)
53
        puts directory
54
        traverse(directory)
55
end
56
 
57
# =============================================================================
58
# MAIN
59
# =============================================================================
60
 
61
progname = File.basename($0)
62
if (ARGV.length == 1)
63
        directory = ARGV[0]
64
        if File.directory?(directory)
65
                start_traverse(directory)
66
        else
37 - 67
                Usage progname, "ERROR: Not a directory #{directory}"
2 ls 68
        end
69
else
70
        Usage progname, "ERROR: 1 argument expected"
71
end