#!/bb/ash
# From concepts of deb2tcz by Jason Williams
# Enhanced for Arm ports by Robert Shingledecker
# postinst / TC customization script support by Brian Smith
# Create sce by merging Debian package together with dependencies
# Usage: $ debExtract packagename.deb

. /etc/init.d/tc-functions

PATH="/bb:/bin:/sbin:/usr/bin:/usr/sbin"
export PATH

checkroot
BUILD=`getBuild`
TCEDIR=/etc/sysconfig/tcedir
IMPORT="$TCEDIR"/import
HERE=`pwd`
PKGDIR=/tmp
PKG="$HERE"
CFG="$PKG"/cfg
FILE="$1"
TARGET="$2"
BASENAME="${FILE%%_*}"
BASENAME="${BASENAME##/*/}"
DEBS="$TCEDIR"/import/debs

setupStartupScript() {
	[ -d "$PKG"/usr/local/tce.installed ] || mkdir -p "$PKG/usr/local/tce.installed/"
	chmod 775 "$PKG/usr/local/tce.installed/"
	chown root.staff "$PKG/usr/local/tce.installed/"
}

[ -z "$1" ] && echo "You must specify a file."
if [ "${FILE##*.}" != "deb" ] ; then
	echo "Only Debian packages work with this." 
	exit 1
fi

mkdir -p "$CFG"
DATA_TAR=`ar t "$FILE" data.tar.*`
CONFIG_TAR=`ar t "$FILE" control.tar.*`
ar p "$FILE" "$DATA_TAR" > "$PKGDIR"/"$DATA_TAR" || exit 1
ar p "$FILE" "$CONFIG_TAR" > "$PKGDIR"/"$CONFIG_TAR" || exit 1
tar xf "$PKGDIR"/"$DATA_TAR" -C "$PKG" || exit 1
tar xf "$PKGDIR"/"$CONFIG_TAR" -C "$CFG" || exit 1

if [ ! -f /tmp/.keepdoc ]; then
	[ -d "$PKG"/usr/share/doc ] && rm -r "$PKG"/usr/share/doc
	[ -d "$PKG"/usr/share/man ] && rm -r "$PKG"/usr/share/man
fi
	
# Set Tiny Core custom script support.
#cd "$PKG"
read IMPORTMIRROR < /opt/tcemirror                                                                             
IMPORTMIRROR="${IMPORTMIRROR%/}/dCore/import"   
		
cd /tmp
if sudo tar xzf /tmp/deb2sce.tar.gz "${BASENAME}".deb2sce > /dev/null 2>&1
then
	[ -d "$PKG"/usr/local/sce/"$BASENAME" ] || mkdir -p "$PKG"/usr/local/sce/"$BASENAME"
	echo Merging Tiny Core custom start script for ${BASENAME}: "${BASENAME}.deb2sce"
	setupStartupScript
	cat /tmp/"${BASENAME}.deb2sce" > "$PKG/usr/local/tce.installed/${BASENAME}"
	echo ""$BASENAME"-deb2sce: `md5sum ${BASENAME}.deb2sce | cut -f1 -d" "`" >> "$PKG"/usr/local/sce/"$TARGET"/"$TARGET"-data.md5sum
	chmod -R 775 "$PKG/usr/local/tce.installed/"
	chown -R root.staff "$PKG/usr/local/tce.installed/"
	sudo rm /tmp/"${BASENAME}.deb2sce"
fi

if grep "^$BASENAME"-data: /tmp/PKGDATAFILEMD5SUMLIST >/dev/null; then
  [ -d "$PKG"/usr/local/sce/"$BASENAME" ] || mkdir -p "$PKG"/usr/local/sce/"$BASENAME"	
  if [ -f "$DEBS"/"$BASENAME"-data.tar.gz ]; then

	if [ `md5sum "$DEBS"/"$BASENAME"-data.tar.gz | cut -f1 -d" "` != `grep "^$BASENAME"-data: /tmp/PKGDATAFILEMD5SUMLIST | cut -f2 -d" "` ]; then
		echo "Fetching updated "$BASENAME"-data.tar.gz.."
		rm "$BASENAME"-data.tar.gz*
		wget -O "$DEBS"/"$BASENAME"-data.tar.gz "$IMPORTMIRROR"/"$BASENAME"-data.tar.gz || exit 1
	fi


  else
	wget -O "$DEBS"/"$BASENAME"-data.tar.gz -c "$IMPORTMIRROR"/"$BASENAME"-data.tar.gz || exit 1
  fi

  if [ `md5sum "$DEBS"/"$BASENAME"-data.tar.gz | cut -f1 -d" "` == `grep "^$BASENAME"-data: /tmp/PKGDATAFILEMD5SUMLIST | cut -f2 -d" "` ]; then
    echo "Merging extra files for "${BASENAME}": "$BASENAME"-data.tar.gz"
    echo ""$BASENAME"-data: `grep "^$BASENAME"-data: /tmp/PKGDATAFILEMD5SUMLIST | cut -f2 -d" "`" >> "$PKG"/usr/local/sce/"$TARGET"/"$TARGET"-data.md5sum
    tar xf "$DEBS"/"$BASENAME"-data.tar.gz -C "$PKG"|| exit 1
  else
    echo "Md5sum failed for "$BASENAME"-data.tar.gz, exiting..."
    exit 1
  fi

fi
cd "$PKG"
	
# Setup Debian postinst script.
cd "$PKG"
#find . -type d -empty | xargs rmdir > /dev/null 2>&1
#busybox find . -mindepth 1 -depth -type d -exec rmdir '{}' + 2>/dev/null

if [ -f "$CFG"/postinst ]; then
	mkdir -p "$PKG/usr/local/postinst"
	cp "$CFG/postinst" "$PKG/usr/local/postinst/${BASENAME}"
#	SCRIPT='/usr/local/postinst/'${BASENAME}' configure 2>/dev/null'
	SCRIPT='/usr/local/postinst/'${BASENAME}' configure'
	setupStartupScript
	echo "${SCRIPT}" >> "$PKG/usr/local/tce.installed/${BASENAME}"
	chmod 775 "$PKG/usr/local/tce.installed/${BASENAME}"
	chown -R root.staff "$PKG/usr/local/tce.installed/"
fi

#	cd pkg

echo "Merging $BASENAME "
#find . -depth | cpio -pmd "$PKG" 2>&1 > /dev/null
#(tar -cf - .) | (cd "$PKG" && tar -xpf -)
if [ "$?" != "0" ]; then
	exit 1
fi	
sudo rm -r "$CFG"
