diff options
| author | John Baldwin <jhb@FreeBSD.org> | 2004-01-26 19:45:09 +0000 |
|---|---|---|
| committer | John Baldwin <jhb@FreeBSD.org> | 2004-01-26 19:45:09 +0000 |
| commit | 18e5e37daafa7cdec81c4d3a5ee83cff6ec6815f (patch) | |
| tree | 8e21b812e23b7ad85108482b848abdb46df790e9 /release/scripts | |
| parent | a7aba49e2cc0ee86a315e3523f50c475e496a0df (diff) | |
Notes
Diffstat (limited to 'release/scripts')
| -rwxr-xr-x | release/scripts/split-file.sh | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/release/scripts/split-file.sh b/release/scripts/split-file.sh new file mode 100755 index 000000000000..9dcf1a4e1400 --- /dev/null +++ b/release/scripts/split-file.sh @@ -0,0 +1,39 @@ +#!/bin/sh +# +# $FreeBSD$ +# + +# Bail if things fail and be verbose about what we are doing +set -ex + +# Arguments are as follows: file destdir chunksize description +FILE=$1; shift +DEST=$1; shift +CHUNK_SIZE=$1; shift +DESCR=$1; shift + +# Make sure we can read the file. +[ -r ${FILE} ] + +# Create clean working area to stick file chunks and list in +rm -rf ${DEST} || true +mkdir -p ${DEST} + +# Split the file into pieces +prefix=`basename $FILE` +dd if=${FILE} bs=16k iseek=1 | split -b ${CHUNK_SIZE}k - ${DEST}/${prefix}. + +# Create a special file for the first 16k that gets stuck on the boot +# floppy +files=`ls ${DEST}/${prefix}.*` +first=`echo "${files}" | head -1` +bootchunk="${DEST}/${prefix}.boot" +dd if=${FILE} of=${bootchunk} bs=16k count=1 + +# Create the split index file +echo `basename ${bootchunk}` "\"Boot floppy\"" > ${DEST}/${prefix}.split +i=1 +for file in ${files}; do + echo `basename ${file}` "\"${DESCR} floppy ${i}\"" >> ${DEST}/${prefix}.split + i=$((i + 1)) +done |
