diff --git a/common/mk-misc.sh b/common/mk-misc.sh new file mode 100755 index 0000000..26ddccf --- /dev/null +++ b/common/mk-misc.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +set -ex + +INPUT=$1 +OUTPUT=$2 +SIZE=$3 +BUF=$4 + +COMMON_DIR=$(dirname $(readlink -f $0)) +ROCKIMG_DIR=${COMMON_DIR}/../rockimg + +if [ ! -e ${INPUT} ]; then + echo "ERROR: No input file \"${INPUT}\"" + exit -1 +fi + +rm ${ROCKIMG_DIR}/${OUTPUT} || true + +if [ ${SIZE} -gt 1024 ]; then + echo "ERROR: SIZE bigger than 1K" + exit -1 +fi + +BIG_END=$[SIZE / 256] +LIT_END=$[SIZE - (BIG_END * 256)] +BIG_END=$(echo "ibase=10;obase=16;${BIG_END}" | bc) +LIT_END=$(echo "ibase=10;obase=16;${LIT_END}" | bc) + +dd if=${INPUT} of=${OUTPUT} bs=1k count=10 +echo -en "\x${LIT_END}\x${BIG_END}" >> ${OUTPUT} +echo -n "$BUF" >> ${OUTPUT} +SKIP=$[10 * 1024 + SIZE + 2] +dd if=${INPUT} of=${OUTPUT} seek=${SKIP} skip=${SKIP} bs=1