here we go.
this coipies the files, the hdf gets created with a different script.
dont know if you find a way to simulate the 2nd one because I can mount
hdf files directly onto my system, but i can do the work if we have a concept running.
EDIT: looks awfull, im trying to find the login data from my signature avvount and upload the scripts there.
CODE
#!/bin/bash
#
# This script unpacks the lzx file
# copies the neccesary data for a bootable affs and also parses the Readme for a needed kickstart image and copies one if needed
# it also creates a game.bat wich calls whdload to start the slave file, it is runs from the startup-sequence in folder C
# to madmab and syncro
# the idea with teh xport autoboot feature is to have always the workbench hdf to load the game from dh1, so
# we need to have always the same name for the file/script that boots the game,
# in winuaeX we have to assign hd0 for the WB and dh1 for the game
echo unpacking data
/home/gonkle/Desktop/HDF/unlzx *
#unzip *
WD=$(pwd)
find -type d -maxdepth 1 -noleaf | while read dir; do
if ( ls "$dir"/*.[sS][lL][aA][vV][eE] 2> /dev/null ); then
echo "changing to folder "$dir""
cd "$dir"
echo "copying the neccesary data"
# cleandisk contains a minimal workbench, only the files needed to boot
# this can be skiped when using a second HD for the WB
cp -pr /home/gonkle/Desktop/HDF/cleandisk/* .
#can also be skipped
echo "checking for kickstart image"
if grep -qE "[Kk][Ii][Cc][Kk]34005.[Aa]500" [Rr][Ee][Aa][Dd][Mm][Ee]; then cp -pr /home/gonkle/Desktop/HDF/cleandisk_kicks/kick34005.A500* Devs/kickstarts/; fi
if grep -qE "[Kk][Ii][Cc][Kk]40068.[Aa]1200" [Rr][Ee][Aa][Dd][Mm][Ee]; then cp -pr /home/gonkle/Desktop/HDF/cleandisk_kicks/kick40068.A1200* Devs/kickstarts/; fi
if grep -qE "[Kk][Ii][Cc][Kk]40068.[Aa]4000" [Rr][Ee][Aa][Dd][Mm][Ee]; then cp -pr /home/gonkle/Desktop/HDF/cleandisk_kicks/kick40068.A4000* Devs/kickstarts/; fi
# here is the game.bat, this should be called while booting, it assigns the slave to whdload
echo "creating the game.bat"
SLAVE="*.[sS][lL][aA][vV][eE]"
echo C:ADD44k > S/Startup-Sequence
echo C:whdload $SLAVE preload >> S/Startup-Sequence
chmod a+rwx -R *
#here i copied the manuals and readmes, usefull since xport has a textviewer in his emus.
cp [Rr][Ee][Aa][Dd][Mm][Ee] /media/Daten/amiga/HDFREADME/"$dir".txt
cp [Dd][Oo][Cc][Ss] /media/Daten/amiga/HDFMANUAL/"$dir".txt
cp [Mm][Aa][Nn][Uu][Aa][Ll] /media/Daten/amiga/HDFMANUAL/"$dir".txt
cp [Ii][Nn][Ss][Rr][Uu][Cc][Ii][Oo][Nn][Ss] /media/Daten/amiga/HDFMANUAL/"$dir".txt
cd "$WD"
else
# this was for non whdload install
mv "$dir" -f /media/Daten/amiga/Games_-_WHDLOAD/OTHERS/
# mv "$dir".lzx /media/Daten/amiga/Games_-_WHDLOAD/OTHERS/
fi
done
rm -r C Devs T S game.bat
./make_uscore.sh
exit 0
here is the script that copies the content to the hdf files,
i had to use preformated hdf files that get choosen by size of the install
CODE
#!/bin/bash
#
# This script creates hdf files from folders where it is run
# it checks for the size and gives each game a hdf file where it fits in
# Need preformated hdf files because I havent found a way to format loop devices under linux, for now
#
# This must be run as root or with 'sudo ./this_file.sh'
#WORKPATH="/home/gonkle/Desktop/HDF/WORK"
WORKPATH="/media/Daten/amiga/Games_-_WHDLOAD/INSTALLS"
MOUNTPATH="/home/gonkle/Desktop/HDF/WORK_TMP"
find -maxdepth 1 -type d | while read dir; do
SIZE=$(du -s $dir | awk '{print $1}')
if (( "$SIZE" < "1024" )); then
cp /home/gonkle/Desktop/HDF/Empty_HDF/1mb.hdf $WORKPATH/$dir.hdf
chmod a+rwx $WORKPATH/$dir.hdf && chgrp users $WORKPATH/$dir.hdf && chown gonkle $WORKPATH/$dir.hdf
mount -o loop -t affs $WORKPATH/$dir.hdf $MOUNTPATH/MOUNT/
cp -p -r $dir/* $MOUNTPATH/MOUNT/
chmod a+rwx -R $MOUNTPATH/MOUNT/*
umount $MOUNTPATH/MOUNT
echo "done $dir"
rm -r $dir
fi
if (( "$SIZE" > "1024" && "$SIZE" < "2048" )); then
cp /home/gonkle/Desktop/HDF/Empty_HDF/2mb.hdf $WORKPATH/$dir.hdf
chmod a+rwx $WORKPATH/$dir.hdf && chgrp users $WORKPATH/$dir.hdf && chown gonkle $WORKPATH/$dir.hdf
mount -o loop -t affs $WORKPATH/$dir.hdf $MOUNTPATH/MOUNT/
cp -p -r $dir/* $MOUNTPATH/MOUNT/
chmod a+rwx -R $MOUNTPATH/MOUNT/*
umount $MOUNTPATH/MOUNT
echo "done $dir"
rm -r $dir
fi
if (( "$SIZE" > "2048" && "$SIZE" < "3072" )); then
cp /home/gonkle/Desktop/HDF/Empty_HDF/3mb.hdf $WORKPATH/$dir.hdf
chmod a+rwx $WORKPATH/$dir.hdf && chgrp users $WORKPATH/$dir.hdf && chown gonkle $WORKPATH/$dir.hdf
mount -o loop -t affs $WORKPATH/$dir.hdf $MOUNTPATH/MOUNT/
cp -p -r $dir/* $MOUNTPATH/MOUNT/
chmod a+rwx -R $MOUNTPATH/MOUNT/*
umount $MOUNTPATH/MOUNT
echo "done $dir"
rm -r $dir
fi
if (( "$SIZE" > "3072" && "$SIZE" < "4096" )); then
cp /home/gonkle/Desktop/HDF/Empty_HDF/4mb.hdf $WORKPATH/$dir.hdf
chmod a+rwx $WORKPATH/$dir.hdf && chgrp users $WORKPATH/$dir.hdf && chown gonkle $WORKPATH/$dir.hdf
mount -o loop -t affs $WORKPATH/$dir.hdf $MOUNTPATH/MOUNT/
cp -p -r $dir/* $MOUNTPATH/MOUNT/
chmod a+rwx -R $MOUNTPATH/MOUNT/*
umount $MOUNTPATH/MOUNT
echo "done $dir"
rm -r $dir
fi
if (( "$SIZE" > "4096" && "$SIZE" < "5120" )); then
cp /home/gonkle/Desktop/HDF/Empty_HDF/5mb.hdf $WORKPATH/$dir.hdf
chmod a+rwx $WORKPATH/$dir.hdf && chgrp users $WORKPATH/$dir.hdf && chown gonkle $WORKPATH/$dir.hdf
mount -o loop -t affs $WORKPATH/$dir.hdf $MOUNTPATH/MOUNT/
cp -p -r $dir/* $MOUNTPATH/MOUNT/
chmod a+rwx -R $MOUNTPATH/MOUNT/*
umount $MOUNTPATH/MOUNT
echo "done $dir"
rm -r $dir
fi
if (( "$SIZE" > "5120" && "$SIZE" < "6144" )); then
cp /home/gonkle/Desktop/HDF/Empty_HDF/6mb.hdf $WORKPATH/$dir.hdf
chmod a+rwx $WORKPATH/$dir.hdf && chgrp users $WORKPATH/$dir.hdf && chown gonkle $WORKPATH/$dir.hdf
mount -o loop -t affs $WORKPATH/$dir.hdf $MOUNTPATH/MOUNT/
cp -p -r $dir/* $MOUNTPATH/MOUNT/
chmod a+rwx -R $MOUNTPATH/MOUNT/*
umount $MOUNTPATH/MOUNT
echo "done $dir"
rm -r $dir
fi
if (( "$SIZE" > "6144" && "$SIZE" < "8192" )); then
cp /home/gonkle/Desktop/HDF/Empty_HDF/8mb.hdf $WORKPATH/$dir.hdf
chmod a+rwx $WORKPATH/$dir.hdf && chgrp users $WORKPATH/$dir.hdf && chown gonkle $WORKPATH/$dir.hdf
mount -o loop -t affs $WORKPATH/$dir.hdf $MOUNTPATH/MOUNT/
cp -p -r $dir/* $MOUNTPATH/MOUNT/
chmod a+rwx -R $MOUNTPATH/MOUNT/*
umount $MOUNTPATH/MOUNT
echo "done $dir"
rm -r $dir
fi
if (( "$SIZE" > "8192" && "$SIZE" < "10240" )); then
cp /home/gonkle/Desktop/HDF/Empty_HDF/10mb.hdf $WORKPATH/$dir.hdf
chmod a+rwx $WORKPATH/$dir.hdf && chgrp users $WORKPATH/$dir.hdf && chown gonkle $WORKPATH/$dir.hdf
mount -o loop -t affs $WORKPATH/$dir.hdf $MOUNTPATH/MOUNT/
cp -p -r $dir/* $MOUNTPATH/MOUNT/
chmod a+rwx -R $MOUNTPATH/MOUNT/*
umount $MOUNTPATH/MOUNT
echo "done $dir"
rm -r $dir
fi
if (( "$SIZE" > "10240" && "$SIZE" < "12288" )); then
cp /home/gonkle/Desktop/HDF/Empty_HDF/12mb.hdf $WORKPATH/$dir.hdf
chmod a+rwx $WORKPATH/$dir.hdf && chgrp users $WORKPATH/$dir.hdf && chown gonkle $WORKPATH/$dir.hdf
mount -o loop -t affs $WORKPATH/$dir.hdf $MOUNTPATH/MOUNT/
cp -p -r $dir/* $MOUNTPATH/MOUNT/
chmod a+rwx -R $MOUNTPATH/MOUNT/*
umount $MOUNTPATH/MOUNT
echo "done $dir"
rm -r $dir
fi
if (( "$SIZE" > "12288" && "$SIZE" < "16384" )); then
cp /home/gonkle/Desktop/HDF/Empty_HDF/16mb.hdf $WORKPATH/$dir.hdf
chmod a+rwx $WORKPATH/$dir.hdf && chgrp users $WORKPATH/$dir.hdf && chown gonkle $WORKPATH/$dir.hdf
mount -o loop -t affs $WORKPATH/$dir.hdf $MOUNTPATH/MOUNT/
cp -p -r $dir/* $MOUNTPATH/MOUNT/
chmod a+rwx -R $MOUNTPATH/MOUNT/*
umount $MOUNTPATH/MOUNT
echo "done $dir"
rm -r $dir
fi
done
#rm MOUNT.hdf
rm *.info
mv *.lzx /media/Daten/amiga/Games_-_WHDLOAD/DONE/
exit 0
This post has been edited by gonkle: Aug 4 2006, 03:45 PM