#!/usr/bin/bash

# ensure use of cygwin tools
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:$PATH
TAR=`which tar`
AR=`which ar`

[ -x "$TAR" ] || { echo "FATAL ERROR: no tar found"; exit 1; }
[ -x "$AR" ]  || { echo "FATAL ERROR: no 'ar' found"; exit 1; }

function unpack() {
	EXT=$1
	NOEXT=${EXT/\.ipk/}
	echo "extracting $NOEXT..."
	mkdir "$NOEXT"	|| WARNINGS=$((WARNINGS + 1)); 
	cd "$NOEXT"
	$TAR -xzf ../"$EXT" >/dev/null 2>&1 || {
		$AR x ../"$EXT" || {
			echo "ERROR: unknown ipk format:$EXT"
			cd ..
			return 1
		}
	}
	# extract control.tar.gz
	mkdir control	|| WARNINGS=$((WARNINGS + 1));
	cd control
	$TAR -xzf ../control.tar.gz
	cd ..
	rm control.tar.gz
	# extract data.tar.gz
	mkdir data	|| WARNINGS=$((WARNINGS + 1));
	cd data
	$TAR -xzf ../data.tar.gz
	cd ..
	rm data.tar.gz
	# back to original dir
	cd ..
}

for pkg in $@; do unpack $pkg; ERRORS=$(($ERRORS + $?)); done;
echo "ERRORS: $ERRORS"
echo "WARNINGS: $WARNINGS"

