#!/bin/bash # gzip-like CLI wrapper for p7zip set -e compress=true file= usage () { echo "Usage: $0 [-d] [-h|--help] [file]" exit 1 } while [ "$#" != "0" ] ; do case "$1" in -d) compress=false ;; -c) echo "$0: ignoring $1 option (not yet implemented)" ;; -h|--help) usage ;; *) if [ "${file}" = "" ] ; then file="$1" else usage fi ;; esac shift done # make sure they're present, before we screw up for i in mktemp 7z rm cat tty ; do if ! which $i > /dev/null ; then echo "$0: $i: command not found" exit 1 fi done if [ "${file}" != "" ] ; then if ${compress} ; then 7z a ${file}.7z ${file} rm ${file} else case ${file} in *.7z) 7z x ${file} rm ${file} ;; *) echo "$0: ${file}: unknown suffix -- ignored" ;; esac fi exit 0 fi tmp=`mktemp` trap "rm -f ${tmp}" 0 if ${compress} ; then if tty > /dev/null ; then echo "$0: compressed data not written to a terminal." echo "For help, type: $0 -h" exit 1 fi rm -f ${tmp} 7z a ${tmp} -si >/dev/null cat ${tmp} else cat > ${tmp} 7z x ${tmp} -so 2>/dev/null | cat fi rm -f ${tmp}