#!/bin/sh

#### List ####
afiofs_list () # $1 is ArchiveName
{
  TMPDIR=/tmp/mctmpdir.$$
  mkdir $TMPDIR
  case "$1" in
	*.afio.lzo)	(cd $TMPDIR; afio -iZ -P lzop "$1") 2>/dev/null ;;
	*.afio.bz2)	(cd $TMPDIR; afio -iZ -P bzip2 "$1") 2>/dev/null ;;
	*.afio)	(cd $TMPDIR; afio -i "$1") 2>/dev/null ;;
	*.afio.gz)	(cd $TMPDIR; afio -iZ "$1") 2>/dev/null ;;
	*)		(cd $TMPDIR; afio -i "$1") 2>/dev/null ;;
  esac
  (cd $TMPDIR;find *|awk '//{system(sprintf("ls -dl %s\n",$1))}')
  rm -rf $TMPDIR
}
#### CopyOut ####
afiofs_copyout () # $1,$2,$3 are ArchiveName FilePathInArchive ExtractPath
{
  TMPDIR=/tmp/mctmpdir.$$
  mkdir $TMPDIR
  case "$1" in
	*.afio.lzo)	(cd $TMPDIR; afio -iZ -P lzop -y "$2" "$1"; mv "$2" "$3") 2>/dev/null ;;
	*.afio.bz2)	(cd $TMPDIR; afio -iZ -P bzip2 -y "$2" "$1"; mv "$2" "$3") 2>/dev/null ;;
	*.afio)	(cd $TMPDIR; afio -i -y "$2" "$1"; mv "$2" "$3") 2>/dev/null ;;
	*.afio.gz)	(cd $TMPDIR; afio -iZ -y "$2" "$1"; mv "$2" "$3") 2>/dev/null ;;
	*)		(cd $TMPDIR; afio -i -y "$2" "$1"; mv "$2" "$3") 2>/dev/null ;;
  esac
  rm -rf $TMPDIR
}
#### Main ####
umask 077
case "$1" in
  list)
	afiofs_list $2
	exit 0
	;;
  copyout)
	afiofs_copyout $2 $3 $4
	exit 0
	;;
esac
exit 1

