Plan 9 from Bell Labs’s /usr/web/sources/contrib/de0u/root/rc/bin/run_squeak

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


#!/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 }

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to webmaster@9p.io.