Don't require sysresccd-usbstick to be run from a sysrcd instance
[systemrescuecd.git] / buildscripts / recreate-iso.sh
index 063e18d87e8c13b0bd453faa5497fc8bba8f3d47..7c6c0003082a96d3ef9c86b404be5a6190c62aa2 100755 (executable)
@@ -4,9 +4,7 @@
 #####################################
 
 PROG="${0}"
-VERSION="1.5.0"
 EXTRAVER=""
-VOLNAME="sysrcd-1.5.0" 
 ISODIR=/worksrc/isofiles
 MOUNTDIR=/mnt/cdrom
 WORKDIR=/worksrc/catalyst/isotemp
@@ -31,15 +29,16 @@ Options:
                      <isodir>/systemrescuecd-<arch>-current.iso
  -w WORKDIR        Set the work directory for the custom CD (${WORKDIR})
  -r REPOSRC        Location of git systemrescuecd repo ($REPOSRC)
- -r REPOBIN        ? ($REPOBIN)
+ -b REPOBIN        ? ($REPOBIN)
  -d DESTDIR        Set the directory for saving the rebuild iso file ($DESTDIR)
  -m MOUNTDIR       Set the directory for mounting the current iso ($MOUNTDIR)
+ -e EXTRAVER       Extra version information for f1boot.msg ($EXTRAVER)
 
 Distributed under the GNU Public License version 2 - http://www.sysresccd.org
 EOF
 }
 
-while getopts ":i:w:r:b:d:m:" Option
+while getopts ":i:w:r:b:d:m:e:" Option
 do
        case $Option in
                i ) ISODIR="$OPTARG";;
@@ -48,18 +47,26 @@ do
                b ) REPOBIN="$OPTARG";;
                d ) DESTDIR="$OPTARG";;
                m ) MOUNTDIR="$OPTARG";;
+               e ) EXTRAVER="$OPTARG";;
                * ) usage; exit 1;;  # Default, handles -h
        esac
 done
 shift $(($OPTIND - 1))
 
+ARCH="$1"
 if [ "$1" = "x86" ] || [ "$1" = "amd64" ] || [ "$1" = "sparc" ]
 then
        ARCH="$1"
 else
-       usage  # handles --help
-       exit 1
 fi
+case ${ARCH} in
+       x86)    BASEARCH="x86";;
+       amd64)  BASEARCH="x86";;
+       sparc)  BASEARCH="sparc";;
+       *)      usage; exit 1;;
+esac
+VERSION=$(cat ${REPOSRC}/overlay-squashfs-${BASEARCH}/root/version)
+VOLNAME="sysrcd-${VERSION}" 
 
 ## ERROR HANDLING
 #####################################
@@ -89,20 +96,19 @@ mount -o loop,ro ${CURFILE} ${MOUNTDIR} || die "Cannot mount \"${CURFILE}\""
 
 [ -d ${WORKDIR} ] && rm -rf ${WORKDIR}
 mkdir -p ${WORKDIR}
-cp ${MOUNTDIR}/isolinux/rescuecd* ${REPOBIN}/kernels-x86/
+cp ${MOUNTDIR}/isolinux/rescuecd* ${REPOBIN}/kernels-${ARCH}/
 cp ${MOUNTDIR}/image.squashfs ${WORKDIR}/sysrcd.dat
 ( cd ${WORKDIR} ; md5sum sysrcd.dat > sysrcd.md5 ; chmod 644 sysrcd.* ) 
 umount ${MOUNTDIR}
 
 # ========= copy files from overlays ===========================================
-rsync -ax ${REPOBIN}/overlay-iso-${ARCH}/ "${WORKDIR}/"
-rsync -ax ${REPOSRC}/overlay-iso-${ARCH}/isolinux/ "${WORKDIR}/isolinux/"
+rsync -ax ${REPOBIN}/overlay-iso-${BASEARCH}/ "${WORKDIR}/"
+rsync -ax ${REPOSRC}/overlay-iso-${BASEARCH}/isolinux/ "${WORKDIR}/isolinux/"
 rsync -ax ${REPOBIN}/kernels-${ARCH}/ ${WORKDIR}/isolinux/ --exclude='*.igz'
-cp ${REPOSRC}/overlay-squashfs-${ARCH}/root/version ${WORKDIR}
+cp ${REPOSRC}/overlay-squashfs-${BASEARCH}/root/version ${WORKDIR}
 
 # ========= integrate the version number in f1boot.msg =========================
-TXTVERSION=$(cat ${REPOSRC}/overlay-squashfs-${ARCH}/root/version)
-sed -i -e "s/VERSION/${TXTVERSION}${EXTRAVER}/" ${WORKDIR}/isolinux/f1boot.msg
+sed -i -e "s/VERSION/${VERSION}${EXTRAVER}/" ${WORKDIR}/isolinux/f1boot.msg
 
 # ========= merge (rescuecd.igz+rescue64.igz+altker32.igz) --> rescuecd.igz ====
 curdir="${WORKDIR}/isolinux"