--- /dev/null
+package require TclCurl
+
+proc FtpMatch {pattern filename} {
+
+ puts "Pattern: $pattern - File: $filename"
+
+ # For this example everything matches
+ return 0
+}
+
+proc FtpCheck {remains} {
+ global someVar
+
+ # Lets forget about directories:
+ if {($someVar(filetype) eq "directory") || ([regexp {^\.} $someVar(filename)])} {
+ return 1
+ }
+
+ puts -nonewline "File to download $someVar(filename) ($someVar(size)B) (y/N): "
+ flush stdout
+ set line [string tolower [gets stdin]]
+ if {$line eq y} {
+ return 0
+ }
+ return 1
+}
+
+proc FtpSaveFile {readData} {
+ global outFile
+ global openedFile
+ global someVar
+
+ if {$openedFile==0} {
+ if {![file exists downloads]} {
+ file mkdir downloads
+ }
+ set outFile [open "downloads/$someVar(filename)" w+]
+ fconfigure $outFile -translation binary
+ }
+
+ puts -nonewline $outFile $readData
+
+ return 0
+}
+
+proc FtpDone {} {
+ global outFile
+ global openedFile
+
+ puts "Done\n"
+
+ close $outFile
+ set openedFile 0
+
+ return 0
+}
+
+set openedFile 0
+set curlHandle [curl::init]
+
+$curlHandle configure -url ftp://sunsite.rediris.es/sites/metalab.unc.edu/ldp/*
+$curlHandle configure -chunkbgnproc FtpCheck
+$curlHandle configure -chunkbgnvar someVar
+$curlHandle configure -chunkendproc FtpDone
+$curlHandle configure -writeproc FtpSaveFile
+$curlHandle configure -wildcardmatch 1
+$curlHandle configure -fnmatchproc FtpMatch
+
+$curlHandle perform
+
+$curlHandle cleanup
+
+
+
+
+
+
+
+
+
+