#!/bin/bash
# Uses findlzma to extract lzma parts from a file.
# (c) 2011 Peter Lekensteyn <lekensteyn@gmail.com>
# License: GPLv3+

FINDLZMA=findlzma
for i in ./ "$(dirname "$(readlink -f "$0")")"; do
	if [ -x "$i/$FINDLZMA" ]; then
		FINDLZMA="$i/$FINDLZMA"
		break
	fi
done
file="$1"
# Note: if you want to extract to a directory, append a slash
prefix="$2"

if [ -z "$file" ]; then
	echo "Usage: $0 file [extract-prefix]"
	exit 1
fi
$FINDLZMA "$file" | while read offset size; do
	out="$prefix$offset.lzma"
	echo "$out"
	dd if="$file" bs=1 skip="$((0x$offset))" count="$((0x$size))" > "$out"
done
