Bochs/bochs/build/linux/bochs-dlx.in
2008-04-05 21:28:11 +00:00

119 lines
3.0 KiB
Bash
Executable File

#!/bin/sh
BOCHS=@prefix@/bin/bochs
DLXINST=@prefix@/share/bochs/dlxlinux
GZIP=@GZIP@
if [ ! -z $1 ]; then
DLXPATH=$1
else
DLXPATH=$HOME/.bochsdlx
fi
CONFFILE=$HOME/.bochsdlx/bochsconf
makedlxdir() {
echo
echo ---------------------------------------------------------------
echo To run the DLX Linux demo, I need to create a directory called
echo $DLXPATH, and copy some configuration files
echo and a 10 megabyte disk image into the directory.
echo ---------------------------------------------------------------
ok='unknown'
while test $ok = 'unknown'; do
echo Is that okay? [y/n]
read j
case $j in
y*) ok=1 ;;
n*) ok=0 ;;
esac
done
if test $ok != 1; then
echo Aborting
exit 1
fi
#echo DEBUG: Creating $HOME/.bochsdlx/bochsrc
echo DLXPATH=$DLXPATH > $CONFFILE
. $CONFFILE
for file in bochsrc.txt readme.txt testform.txt; do
if [ ! -f $DLXPATH/$file ]; then
echo Copying $DLXINST/$file '->' $DLXPATH/.
cp $DLXINST/$file $DLXPATH/.
else
echo "ERROR: $file already exists in $DLXPATH. Remove it to replace."
fi;
done
if [ ! -f $DLXPATH/hd10meg.img ]; then
echo Uncompressing $DLXINST/hd10meg.img.gz '->' $DLXPATH/hd10meg.img
$GZIP -dc $DLXINST/hd10meg.img.gz > $DLXPATH/hd10meg.img
else
echo "ERROR: hd10meg.img already exists in $DLXPATH. Remove it to replace."
fi
}
echo ---------------------------------------------------------------
echo " DLX Linux Demo, for Bochs x86 Emulator"
echo ---------------------------------------------------------------
echo -n "Checking for bochs binary..."
if test ! -x $BOCHS; then
echo FAILED
echo ERROR: I could not find bochs in $BOCHS
exit 1
fi
echo ok
echo -n "Checking for DLX linux directory..."
if test ! -d $DLXINST; then
echo FAILED
echo ERROR: I could not find the DLX linux directory.
exit 1
fi
echo ok
echo -n "Checking for $GZIP..."
$GZIP < /dev/null > /dev/null
if test $? = 0; then
echo ok
else
echo not found
echo ERROR: without $GZIP in your PATH, I cannot continue.
exit 1
fi
echo -n "Checking for $HOME/.bochsdlx directory..."
if test -d "$HOME/.bochsdlx"; then
echo "ok"
if test -f "$CONFFILE"; then
. $CONFFILE
else
makedlxdir
fi
else
#echo DEBUG: Creating $HOME/.bochsdlx
mkdir -p $HOME/.bochsdlx
mkdir -p $DLXPATH
makedlxdir
fi
echo Entering $DLXPATH
cd $DLXPATH
# Now that we're in the DLXPATH, make sure that bochsrc.txt & hd10meg.img exist
if test ! -f bochsrc.txt; then
echo ERROR: bochsrc.txt not found
exit 1
fi
if test ! -f hd10meg.img; then
echo ERROR: hd10meg.img not found
exit 1
fi
echo Running bochs
# ok now try it
$BOCHS -q
echo
echo ---------------------------------------------------------------
echo The DLX Linux demo is over. If you want to free up the disk
echo space in your account, remove the .bochsdlx directory from
echo your home directory. Example:
echo " rm -rf ~/.bochsdlx"
echo Please be careful with rm -rf because it can make a mess.
echo ---------------------------------------------------------------
exit 0