| 
#!/bin/rc
IMAGE_DIR=$home/lib/squeak_image
SQUEAK=squeak
SQUEAK_FTP=ftp.squeak.org
MOUNT_PT=/n/squeak_ftp
fn fetch_image {
	# Open FTP connection
	ftpfs -q -m $MOUNT_PT -a anonymous $SQUEAK_FTP
	# Freshen files in directory
	ls $MOUNT_PT/current_stable > /dev/null
	echo Fetching files...
	# Copy image file
	img_file=`{ls $MOUNT_PT/current_stable | grep 'Squeak[0-9]+\.[0-9]+'}
	cp $img_file $IMAGE_DIR
	# Copy sources file
	src_file=`{ls $MOUNT_PT/current_stable | grep 'SqueakV[0-9]+\.sources\.zip'}
	cp $src_file $IMAGE_DIR
	# Unzip files
	echo Unpacking files...
	cd $IMAGE_DIR
	for(f in *.zip) {
		unzip -f $f
		rm $f
	}
	cd ..
	# Close FTP connection
	unmount $MOUNT_PT
}
mkdir -p $IMAGE_DIR
# Check whether the image file already exists or not
_img=`{ls $IMAGE_DIR | grep 'Squeak[0-9]+\.[0-9]+.*\.image'}
if(~ $#_img 0) {
	fetch_image
	_img=`{ls $IMAGE_DIR | grep 'Squeak[0-9]+\.[0-9]+.*\.image'}
	if(~ $#_img 0) {
		echo Error fetching image
		exit 'failure'
	}
}
# Run Squeak.  Note that the current interpreter prepends the current working
# directory to whatever pathame we give it.  This "helpful" behavior means that
# we must give it a relative pathname and must run it from our home directory.
_relative=`{echo $_img | sed 's@'^$home^'/@@'}
@{ cd $home ; $SQUEAK $_relative }
 |