#!/bin/bash

if [ "$1" = '--help' ] || [ "$1" = '-h' ]
then
   echo
   echo "   Usage `basename $0` file|[-]"
   echo
   exit 1
fi

unset OpenSsl
if ! which base64 2> /dev/null | grep '^/' > /dev/null 2>&1
then
   OpenSsl="`which openssl 2> /dev/null | grep '^/'`"
fi

unset FILE
if [ "$1" = "" ] || [ "$1" = "-" ]
then
   echo "Reading stdin till EOT (^D)" >&2
else
   if [ ! -f $1 ]
   then
      echo
      echo "! [ERROR]: File $1 not found"
      echo
      exit 2
   else
      FILE=$1
   fi
fi

# For minimal linux installs without tar, we use cpio in ustar (auto) mode
if which tar 2> /dev/null | grep '^/' > /dev/null 2>&1
then
   $OpenSsl base64 -d $FILE | gunzip -c | tar xvf -
else
   $OpenSsl base64 -d $FILE | gunzip -c | cpio -idumv
fi
