mirror of
https://github.com/jeremysrand/Apple2GSBuildPipeline.git
synced 2024-11-29 16:49:24 +00:00
121 lines
1.9 KiB
Bash
Executable File
121 lines
1.9 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
|
|
MOUNTDIR=/tmp/a2gs_mount.$$
|
|
TMPDISKIMAGE=/tmp/a2gs_diskimage_$$.2mg
|
|
TEMPLATEDISKIMAGE=make/system601.2mg
|
|
|
|
if [ $# -lt 3 ]
|
|
then
|
|
echo USAGE: $0 diskimage file directory
|
|
exit 1
|
|
fi
|
|
|
|
DISKIMAGE="$1"
|
|
shift
|
|
|
|
FILE="$1"
|
|
shift
|
|
|
|
DISKIMAGEDEST="$1"
|
|
shift
|
|
DEST="${MOUNTDIR}/${DISKIMAGEDEST}"
|
|
|
|
COPYDIRS=$*
|
|
|
|
cleanupAndExit()
|
|
{
|
|
umount "$MOUNTDIR" 2> /dev/null
|
|
rm -f "$TMPDISKIMAGE" 2> /dev/null
|
|
rm -f "$DISKIMAGE" 2> /dev/null
|
|
rmdir "$MOUNTDIR" 2> /dev/null
|
|
exit 1
|
|
}
|
|
|
|
if [ ! -f "$TEMPLATEDISKIMAGE" ]
|
|
then
|
|
echo Unable to find the template disk image, $TEMPLATEDISKIMAGE
|
|
cleanupAndExit
|
|
fi
|
|
|
|
cp "$TEMPLATEDISKIMAGE" "$TMPDISKIMAGE"
|
|
if [ $? != 0 ]
|
|
then
|
|
echo Unable to copy template disk image.
|
|
cleanupAndExit
|
|
fi
|
|
|
|
mkdir "$MOUNTDIR"
|
|
if [ $? != 0 ]
|
|
then
|
|
echo Unable to create the mount directory.
|
|
cleanupAndExit
|
|
fi
|
|
|
|
profuse -orw "$TMPDISKIMAGE" "$MOUNTDIR"
|
|
if [ $? != 0 ]
|
|
then
|
|
echo Unable to mount the disk image.
|
|
cleanupAndExit
|
|
fi
|
|
|
|
cp "$FILE" "$DEST"
|
|
if [ $? != 0 ]
|
|
then
|
|
echo Unable to copy the file to the disk image.
|
|
cleanupAndExit
|
|
fi
|
|
|
|
OLDDIR=`pwd`
|
|
for COPYDIR in $COPYDIRS
|
|
do
|
|
cd "$COPYDIR"
|
|
if [ $? != 0 ]
|
|
then
|
|
echo Unable to find $COPYDIR
|
|
cleanupAndExit
|
|
fi
|
|
|
|
find . -print | while read FILEORDIR
|
|
do
|
|
if [ -d "$FILEORDIR" ]
|
|
then
|
|
mkdir -p "${MOUNTDIR}/$FILEORDIR"
|
|
elif [ -f "$FILEORDIR" ]
|
|
then
|
|
cp "$FILEORDIR" "${MOUNTDIR}/$FILEORDIR"
|
|
fi
|
|
done
|
|
cd "$OLDDIR"
|
|
done
|
|
|
|
RETRIES=0
|
|
while [ $RETRIES -lt 5 ]
|
|
do
|
|
umount "$MOUNTDIR"
|
|
if [ $? -eq 0 ]
|
|
then
|
|
break
|
|
fi
|
|
|
|
RETRIES=`expr $RETRIES + 1`
|
|
sleep 1
|
|
done
|
|
|
|
if [ $RETRIES -ge 5 ]
|
|
then
|
|
echo Unable to unmount the disk image.
|
|
cleanupAndExit
|
|
fi
|
|
|
|
cp "$TMPDISKIMAGE" "$DISKIMAGE"
|
|
if [ $? != 0 ]
|
|
then
|
|
echo Unable to copy the disk image to the destination.
|
|
cleanupAndExit
|
|
fi
|
|
|
|
rm -f "$TMPDISKIMAGE"
|
|
rmdir "$MOUNTDIR"
|
|
exit 0
|