2011-06-22 14:43:06 +00:00
|
|
|
#!/bin/bash
|
2011-06-22 13:33:10 +00:00
|
|
|
|
|
|
|
set -e
|
|
|
|
|
2011-06-22 14:43:06 +00:00
|
|
|
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}
|
2011-06-22 13:33:10 +00:00
|
|
|
|
2011-06-22 20:20:00 +00:00
|
|
|
# create FAT partition
|
|
|
|
# /sbin/mkfs.msdos -n Bla -C test.fat 8192
|
|
|
|
|
|
|
|
# create MD5 list in base64 format
|
2011-06-22 13:33:10 +00:00
|
|
|
jigdo-gen-md5-list ${DIR} > ${IMG}.md5
|
|
|
|
|
2011-06-22 20:20:00 +00:00
|
|
|
# build the command - general section
|
|
|
|
CMD="${XOR} \
|
|
|
|
-as mkisofs \
|
|
|
|
-o ${IMG}.iso \
|
|
|
|
-R \
|
|
|
|
-V ISOJIGDO \
|
|
|
|
-partition_offset 16 \
|
|
|
|
-J -joliet-long \
|
|
|
|
"
|
|
|
|
# boot section
|
|
|
|
#if [ "${4}" ]; then
|
|
|
|
#CMD+=
|
|
|
|
#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}
|
2011-06-22 13:33:10 +00:00
|
|
|
|
2011-06-22 20:20:00 +00:00
|
|
|
# create another one from jigdo files
|
2011-06-22 13:33:10 +00:00
|
|
|
jigit-mkimage \
|
|
|
|
-t ${IMG}.template \
|
|
|
|
-j ${IMG}.jigdo \
|
|
|
|
-m Debian=${DIR} \
|
2011-06-22 14:43:06 +00:00
|
|
|
-o ${IMG}.new
|
|
|
|
|
2011-06-22 20:20:00 +00:00
|
|
|
# diff'em
|
2011-06-22 14:43:06 +00:00
|
|
|
diff ${IMG}.iso ${IMG}.new
|
2011-06-22 13:33:10 +00:00
|
|
|
|
2011-06-22 14:43:06 +00:00
|
|
|
# sort out the cruft
|
|
|
|
if [ "${4}" == "--clean" ]; then
|
|
|
|
rm -f ${RES}
|
|
|
|
printf "removed: %s\n" ${RES}
|
|
|
|
else
|
|
|
|
printf "left: %s\n" ${RES}
|
|
|
|
fi
|