#!/bin/sh
# This is a self-extracting shell script for MzScheme v208.
# To use it, just run it, or run "sh" with this file.
DISTNAME="MzScheme v208"
TARGET=mz
BINSTARTLINE="263"
BINSUM="3749041189"
ORIGSIZE="13M"
failwith() {
echo "Error: $*" 1>&2
exit 1
}
exithandler() {
failwith "Abort."
}
trap exithandler 2 3 9 15
lookfor() {
save_IFS="${IFS}"
IFS="${IFS}:"
for dir in $PATH; do
if test -x "$dir/$1"; then
eval "$1=$dir/$1"
IFS="$save_IFS"
return
fi
done
IFS="$save_IFS"
failwith "Could not find \"$1\"."
}
link() { # args are source, target, where we are
"$rm" -f "$2" || failwith "Could not remove \"$2\" in \"$3\"."
"$ln" -s "$1" "$2" || failwith "Could not link \"$2\" in \"$3\"."
}
lookfor rm
lookfor ls
lookfor ln
lookfor tail
lookfor cksum
lookfor tar
lookfor gunzip
lookfor mkdir
lookfor basename
lookfor dirname
# Need this to make new `tail' respect old-style command-line arguments. Can't
# use `tail -n #' because some old tails won't know what to do with that.
_POSIX2_VERSION=199209
export _POSIX2_VERSION
origpwd="`pwd`"
echo "This program will extract and install $DISTNAME."
echo ""
echo "Note: the required diskspace for this installation is around $ORIGSIZE."
echo ""
echo "Where do you want to install the \"$TARGET\" directory tree?"
echo " 1 - /usr/$TARGET [default]"
echo " 2 - /usr/local/$TARGET"
echo " 3 - \$HOME/$TARGET ($HOME/$TARGET)"
echo " 4 - ./$TARGET (here)"
echo " Or enter a different directory to install in."
echo -n "> "
read where
case "$where" in
"" | 1 ) where="/usr" ;;
"2" ) where="/usr/local" ;;
"3" ) where="$HOME" ;;
"4" | "." ) where="`pwd`" ;;
"/"* )
TARGET="`\"$basename\" \"$where\"`"
where="`\"$dirname\" \"$where\"`"
;;
* )
TARGET="`\"$basename\" \"$where\"`"
where="`\"$dirname\" \"$where\"`"
if test -d "$where"; then cd "$where"; where=`pwd`; cd "$origpwd"
else failwith "The directory \"$where\" does not exist."; fi
;;
esac
if test ! -d "$where"; then
failwith "The directory \"$where\" does not exist."
fi
if test ! -w "$where"; then
failwith "Cannot write to \"$where\"."
fi
echo -n "Checking the integrity of the binary archive... "
SUM="`\"$tail\" +\"$BINSTARTLINE\" \"$0\" | \"$cksum\"`" \
|| failwith "Problems running cksum."
SUM="`set $SUM; echo $1`"
test "$BINSUM" = "$SUM" || failwith "Bad CRC checksum."
echo "ok."
if test -d "$where/$TARGET" || test -f "$where/$TARGET"; then
echo -n "\"$where/$TARGET\" exists, delete? "
read yesno
case "$yesno" in
[yY]*)
echo -n "Deleting old \"$where/$TARGET\"... "
"$rm" -rf "$where/$TARGET" \
|| failwith "Could not delete \"$where/$TARGET\"."
echo "done."
;;
*) failwith "Aborting because \"$where/$TARGET\" exists." ;;
esac
fi
echo -n "Unpacking into \"$where/$TARGET\"... "
"$mkdir" "$where/$TARGET"
"$tail" +"$BINSTARTLINE" "$0" | "$gunzip" -c \
| { cd "$where/$TARGET"
"$tar" xf - \
|| failwith "Problems during unpacking of binary archive."
}
cd "$where/$TARGET"
test -d "collects" \
|| failwith "Unpack failed (could not find \"$where/$TARGET/collects\")."
echo "done."
echo "Running the PLT installer..."
./finish-install || failwith "PLT installer failed."
cd "$where"
if test -d "bin"; then
echo "Do you want to install new system links within the bin, lib, include,"
echo " man, and doc subdirectories of \"$where\", possibly overriding"
echo -n " existing links? "
read yesno
case "$yesno" in
[yY]* ) sysdir="$where" ;;
* ) sysdir="" ;;
esac
else
cd "$origpwd"
echo "If you want to install new system links within the bin, lib, include,"
echo " man, and doc subdirectories of a common directory prefix (for"
echo " example, \"/usr/local\") then enter the prefix you want to use."
echo -n "(default: skip links) > "
read sysdir
if test ! "x$sysdir" = "x"; then
if test ! -d "$sysdir"; then
echo "Directory \"$sysdir\" does not exist, skipping links."
sysdir=""
elif test ! -w "$sysdir"; then
echo "Directory \"$sysdir\" is not writable, skipping links."
sysdir=""
else
cd "$sysdir"
sysdir="`pwd`"
fi
fi
fi
if test ! "x$sysdir" = "x"; then
# binaries
cd "$sysdir"
if test -d "bin" && test -w "bin"; then
echo "Installing links in \"$sysdir/bin\"..."
printsep=" "
cd "bin"
for x in "mzscheme" "mred" "drscheme" "help-desk" "setup-plt" "mzc" \
"mzpp" "mztext" "pdf-slatex" "slatex" "tex2page"; do
if test -x "$where/$TARGET/bin/$x"; then
echo -n "${printsep}$x"
printsep=", "
link "$where/$TARGET/bin/$x" "$x" "$sysdir/bin"
fi
done
echo ""
echo "Done. (see \"$where/$TARGET/bin\" for other executables)"
else
echo "Skipping \"$sysdir/bin\" (does not exist or not writable)."
fi
# man pages
cd "$sysdir"
if test -d "man" && test -d "man/man1" && test -w "man/man1"; then
mandir="man/man1"
elif test -d "share" && test -d "share/man" && test -d "share/man/man1" \
&& test -w "share/man/man1"; then
mandir="share/man/man1"
else
mandir=""
fi
if test "x$mandir" = "x"; then
echo "Skipping \"$sysdir/man/man1\" (does not exist or not writable)."
else
cd "$mandir"
echo "Installing links in \"$sysdir/$mandir\"..."
printsep=" "
for x in `cd "$where/$TARGET/man/man1/"; "$ls"`; do
echo -n "${printsep}$x"
printsep=", "
link "$where/$TARGET/man/man1/$x" "$x" "$sysdir/$mandir"
done
echo ""
echo "Done"
fi
# lib link
cd "$sysdir"
if test -d "lib" && test -w "lib"; then
libdir="lib"
elif test -d "share" && test -d "share/lib" && test -w "share/lib"; then
libdir="share/lib"
else
libdir=""
fi
if test "x$libdir" = "x"; then
echo "Skipping \"$sysdir/lib\" (does not exist or not writable)."
else
cd "$libdir"
echo "Installing \"$sysdir/$libdir/$TARGET\"."
link "$where/$TARGET/lib" "$TARGET" "$sysdir/$libdir"
fi
# include link
cd "$sysdir"
if test -d "include" && test -w "include"; then
incdir="include"
elif test -d "share" && test -d "share/include" \
&& test -w "share/include"; then
incdir="share/include"
else
incdir=""
fi
if test "x$incdir" = "x"; then
echo "Skipping \"$sysdir/include\" (does not exist or not writable)."
else
cd "$incdir"
echo "Installing \"$sysdir/$incdir/$TARGET\"."
link "$where/$TARGET/include" "$TARGET" "$sysdir/$incdir"
fi
# doc link
cd "$sysdir"
if test -d "doc" && test -w "doc"; then
docdir="doc"
elif test -d "share" && test -d "share/doc" && test -w "share/doc"; then
docdir="share/doc"
else
docdir=""
fi
if test "x$docdir" = "x"; then
echo "Skipping \"$sysdir/doc\" (does not exist or not writable)."
else
cd "$docdir"
echo "Installing \"$sysdir/$docdir/$TARGET\"."
link "$where/$TARGET/notes" "$TARGET" "$sysdir/$docdir"
fi
fi
echo ""
echo "All done."
exit
========== tar.gz file follows ==========
Apack-24014.tar Y
TW~U`7t2m'K‒Q3C<CldC&VՂ3fոc&猺̚`!ꮦ(!9ggΡΩ~w߽.\O
3aԔԔ{jjlxkJWeEU⾪_^?y*W&W?_[czpS(ArlߡGkx#/D]\\K>}Hh$8qIqq%1ZUqxڨQ\\WB9>}1jdYcj*k˞*/}G-7zPe \9J4\wҰ4bkVU|j4}_e섕_50**VVB#!/LDeQiPOh4[Ɣ?nh8ؽ8n]AمƱAXf[BnWeuFa٤e$An5uy{^lggRL4VV}9ߞ{'&p6e_2}aMw4n7
4nN} Nٖ42(Gu+Gq-N3ےƐZ0oayMBٯ:Zws=1H]\UYըg{~uj}3=c3=c3=c3}H;.t0%RBǕq1f3ajg]8X&oBWەݲ;&ycfMkVr4^XFPrXkp_X1Zv/TqZOF`͊\Ł~Zg,?po,tU(̓16.KWVPd,01`)sAqEk^e&w's6365-f}۴>2:`:W@Arw+mMPa3K#Bߔufo.Э0{IU&B?\e.Pa9.vnYz'fv-t]U
62oɠ)W֡R.'0$ U˨ۨ FMP/b9tb*qa69qC7FTz9kxwɬ}Oi,NSB=iuA&ddЖ4[I;vV$;,G[?vntƤ{)kӅu*dY&z:bȶj${ûZ
]=ے Gw0YU??bJtR%IxBnn^ro{%K4ؖ~wocCDZ@w
γEpסb6$s )Rfdb![Z`y/q^9<$#
/}4ޒ-yM0//@z,|%4wɢūHeD+pɨ>ώ*|-;DWK\@3o?^ Z8yʖyIoZkZŅ.hhinK2=3W(_Hk!-3WT[ohZ{9жh
OmhvZ{*[;Np+89~;^}B(2!
z'*e{e_>;h?s};}X~o]r b+h@Wt~:5tk/P^OHǠ3^ڣ\u NdmeX
`94EHΓ
u;%:}fڄ%y/闆.w/#a5]