Subversion Repositories svn.Prod repos

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
57 ls 1
#!/usr/bin/env groovy
2
 
3
// ============================================================================
4
// Create
5
// name  : Andre Rikkert de Koe with ChatGPT         date:   Jul 2026
6
// descr : filefind
7
//         Groovy implementation of the original Pascal filefind program.
8
//
9
// run   : interactive
10
//
11
// ============================================================================
12
 
13
def progname = new File(args ? args[0] : 'filefind').name
14
 
15
// ============================================================================
16
// Functions
17
// ============================================================================
18
 
19
def usage = { String message ->
20
    println "Usage: ${progname} directory"
21
    println message
22
}
23
 
24
def traverse
25
 
26
traverse = { File directory ->
27
    directory.eachFile { File file ->
28
        println file.absolutePath
29
 
30
        if (file.isDirectory()) {
31
            traverse(file)
32
        }
33
    }
34
}
35
 
36
def startTraverse = { File directory ->
37
    println directory.absolutePath
38
    traverse(directory)
39
}
40
 
41
// ============================================================================
42
// Main
43
// ============================================================================
44
 
45
if (args.size() == 1) {
46
    File directory = new File(args[0])
47
 
48
    if (directory.isDirectory()) {
49
        startTraverse(directory)
50
    } else {
51
        usage("ERROR: Not a directory : ${args[0]}")
52
    }
53
} else {
54
    usage("ERROR: 1 argument expected")
55
}