summaryrefslogtreecommitdiff
path: root/example/archie
diff options
context:
space:
mode:
Diffstat (limited to 'example/archie')
-rwxr-xr-xexample/archie41
1 files changed, 41 insertions, 0 deletions
diff --git a/example/archie b/example/archie
new file mode 100755
index 0000000..0d5f43f
--- /dev/null
+++ b/example/archie
@@ -0,0 +1,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}
+}