#!/bin/bash -e
r=
. opts
echo "$r"
# TODO add .pnd support
parentdir="$PWD"
for pkg; do
	dir="$pkg"
	dir=${dir%.*}
	dir=${dir%.tar}
	dir="$parentdir/`basename "$dir"`"
	echo >&2 "unpacking $pkg"
	mkdir -p "$dir"
	pkgpath="$pkg"
	if [ "${pkgpath#/}" = "$pkgpath" ]; then
		pkgpath="$PWD/$pkgpath"
	fi
	(
		cd "$dir"
		(
		case "$pkg" in
		*.zip|*.cbz|*.epub|*.xlsx|*.docx|*.ckpt|*.pth|*.pkl|*.pt)
			v unzip "$pkgpath"
			;;
		*.tgz|*.tar.gz)
			v gunzip -c "$pkgpath" | v tar x
			;;
		*.tbz2|*.tar.bz2)
			v bunzip2 -c "$pkgpath" | v tar x
			;;
		*.tar.xz)
			v xz -dc "$pkgpath" | v tar x
			;;
		*.tar.Z)
			v uncompress -c "$pkgpath" | v tar x
			;;
		*.tar.zst)
			v unzstd -c "$pkgpath" | v tar x
			;;
		*.tar)
			v tar xf "$pkgpath"
			;;
		*.7z)
			v 7za x "$pkgpath"
			;;
		*.rar|*.cbr)
			v rar x "$pkgpath"
			;;
		*)
			echo >&2 "unknown archive extension: $pkg"
			cd ..
			rmdir "$dir"
			exit 1
			;;
		esac
		) >&2
		if [ "$r" = 1 ]; then
			rm -v "$pkgpath"
		fi
		if [ "`ls | wc -l`" = 1 ]; then
			name=`ls`
			tmpname="$name.tmp.$$.$RANDOM"
			mv -i * "$parentdir/$tmpname"
			cd "$parentdir"
			rmdir "$dir" || true
			mv -i "$tmpname" "$name"
			dir="$name"
		fi
		echo "$dir"
	)
done
