libisoburn/releng/releng_build_jigdo

82 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
set -e
if [ ! "${3}" ]; then
printf "$0 xorriso_cmd dir_in image_out [--clean]\n"
exit 1;
fi
XOR=${1}
DIR=${2}
IMG=${3}
RES="${IMG}.iso ${IMG}.new ${IMG}.md5 ${IMG}.jigdo ${IMG}.template"
# remove cruft from previous runs
# rm -f ${RES}
# grab an MBR
# dd if=some.iso bs=1K count=32 of=somembr.sysarea
# create FAT partition
# /sbin/mkfs.msdos -n Bla -C fatpart.fat 8192
# create MD5 list in base64 format
jigdo-gen-md5-list ${DIR} > ${IMG}.md5
# build the command - general section
CMD="${XOR} \
-as mkisofs \
-o ${IMG}.iso \
-R \
-V ISOJIGDO \
-partition_offset 16 \
-J -joliet-long \
"
# boot section
#if [ "${5}" -a "${6}" ]; then
#CMD+=\
# -b boot/isolinux/isolinux.bin \ # $5
# -c boot/boot.cat \ # $6
# -no-emul-boot -boot-load-size 4 -boot-info-table \
# -isohybrid-mbr somembr.sysarea \ # TODO: figure out where to grab one
# -partition_offset 16 \
# -append_partition 2 0x01 fatpart.fat \
#fi
# jigdo section
CMD+="\
-jigdo-template-compress gzip \
-checksum_algorithm_iso md5,sha1,sha256,sha512 \
-checksum_algorithm_template md5,sha1,sha256,sha512 \
-jigdo-jigdo ${IMG}.jigdo \
-jigdo-template ${IMG}.template \
-jigdo-map Debian=${DIR} \
-md5-list ${IMG}.md5 \
-jigdo-min-file-size 1024 \
"
CMD+="${DIR}"
# run it
echo -e "$0: creating iso & jigdo representations:\n$CMD\n"
${CMD}
# create another one from jigdo files
jigit-mkimage \
-t ${IMG}.template \
-j ${IMG}.jigdo \
-m Debian=${DIR} \
-o ${IMG}.new
# diff'em
diff ${IMG}.iso ${IMG}.new
# sort out the cruft
if [ "${4}" == "--clean" ]; then
rm -f ${RES}
printf "removed: %s\n" ${RES}
else
printf "left: %s\n" ${RES}
fi