#!/usr/athena/bin/perl

require '/mit/mkgray/chat/chat2.pl';


sub listen {
        local($secs) = @_;
        local($return,$tmp) = "";
        while (length($tmp = &chat'expect($secs, '(.|\n)+', '$&'))) {
                print $tmp if $trace;
                $return .= $tmp;
        }
        $return;
}


#  ---Main---
#  ftp mrcnext.cso.uiuc.edu

print("\n\n\nWelcome to Gutenget!\n");
print("Beginning retrieve process for file: $ARGV[0]\n");
print("\nOpening ftp connection...");
$ftpcon = &chat'open_proc('ftp -i mrcnext.cso.uiuc.edu');
print("Connection opened!\n");
		      
while(!/ftp[^ ]/){
    $_ = &listen(5);
    if(/Name(.)+:/){
	&chat'print("anonymous\n");
	print("Anonymous login...\n");
        $_ =&listen(5);
}
if(/Password/){
	&chat'print("$ENV{'USER'}@athena.mit.edu\n");
	print("Sending address as password...\n");
	$_ =&listen(5);
    }
}
print("\n\nConnected to Project Gutenberg!\n");
@dircomps = split(/\//, $ARGV[0]);
$file = pop(@dircomps);
		      $file =~s/xxx/\*/g;
$path = join("/", @dircomps);
print("-Moving to $path\n");
&chat'print("cd $path\n");
if(&listen(5)=~/No such/){ &bad_file; }
print("--Moved, getting file $file\n");
&chat'print("mget $file\n");
if(($_=&listen(5))=~/No such/){ &bad_file; }
print("---This may take a moment...\n");
while(!/complete/){
    $_ = &listen(5);
}
print("\nFile transfer complete.\n");
&chat'print("quit\n");
print("Exiting Gutenget.\n");

sub bad_file {
    print("No such file or directory!!!\n");
    print("Try again :-p\n");
    &chat'print("quit\n");
    exit(1);
}
