119 lines
3.0 KiB
Bash
Executable File
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 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 in your
|
|
echo home directory. Example:
|
|
echo " rm -rf ~/.bochsdlx"
|
|
echo Please be careful with rm -rf because it can make a mess.
|
|
echo ---------------------------------------------------------------
|
|
exit 0
|