| #!@PERL@ |
| # |
| # Author: Daniel Stenberg <Daniel.Stenberg@sth.frontec.se> |
| # Date: August 25 1998 |
| # Version: 0.1 |
| # |
| # This is just meant as an example of why we wrote curl in the first place. |
| # Quick n' easy scripting use. |
| # |
| |
| $dir = $ARGV[0]; |
| |
| $target = $ARGV[1]; |
| |
| $maxdepth = $ARGV[2]; |
| |
| if($dir eq "" || $target eq "") { |
| print "Usage: <URL> <dir> [max depth level] \n"; |
| print " End the URL with a slash if a directory is specified, please\n"; |
| exit; |
| } |
| |
| if(($maxdepth ne "") && ($maxdepth == 0)) { |
| # reached maximum depth, die |
| print "Reached maximum recursive depth level ($maxdepth), exiting...\n"; |
| exit; |
| } |
| |
| # get dir |
| @all = `curl -s $dir`; |
| |
| if($all[0] ne "") { |
| print "Got the main $dir dir\n"; |
| } |
| |
| line: |
| for(@all) { |
| chop; # cut off newline |
| @linep= split(" ", $_); |
| |
| $name = $linep[$#linep]; |
| |
| $firstletter=substr($linep[0], 0, 1); |
| |
| if($firstletter eq "d") { |
| # this is a subdir, recurse |
| # if not . or .. of course |
| |
| if(($name eq ".") || ($name eq "..")) { |
| next line; |
| } |
| print "Recursing for dir $dir$name in target $target/$name\n"; |
| |
| $nextdepth=$maxdepth-1; |
| print `$0 $dir$name/ $target/$name $nextdepth`; |
| } |
| elsif($firstletter eq "-") { |
| # this is a file, get it |
| # oh, make sure the target dir exists first |
| |
| if(! -r $target ) { |
| mkdir($target,0777); |
| } |
| print "Getting file $dir$name in target $target/$name\n"; |
| print `curl -s $dir$name >$target/$name`; |
| } |
| } |