summaryrefslogtreecommitdiff
path: root/example/archie
blob: 0d5f43fbe1428e55c01ba0531b19a3dc862ddd44 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/bin/sh
# -*- tcl -*-
# The next line is executed by /bin/sh, but not tcl \
exec tclsh "$0" ${1+"$@"}

package require Expect

# archie

# Log in to the archie ftp-catalog at McGill University, and mail back results
# Brian P. Fitzgerald
# Department of Mechanical Engineering
# Rensselaer Polytechnic Institute

set CINTR \003	;# ^C
set CSUSP \032	;# ^Z

set timeout -1
spawn telnet quiche.cs.mcgill.ca

expect_after eof exit	;# archie logs us out if too many people are logged in

expect {
	login:		{send archie\r}
	"unknown"	{exit 1}
	"unreachable"	{exit 1}
}

expect	"archie>" {send "set pager\r"}
expect	"archie>" {send "set maxhits 20\r"}
expect	"archie>" {send "set term vt100\r"}
expect	"archie>" {send "set sortby time\r"}
expect	"archie>" {
	send "set mailto [exec whoami]@[exec hostname].[exec domainname]\r"
}

send_user "type ^C to exit, ^Z to suspend\n"
interact {
	-reset	$CSUSP  {exec kill -STOP [pid]}
		$CINTR  {exit 0}
}