diff p7zip_9.20.1/contrib/gzip-like_CLI_wrapper_for_7z/p7zip @ 707:8e902fcb8792

<Sgeo> run tar -xjf p7zip.tar.bz2
author HackBot
date Sat, 15 Sep 2012 23:18:55 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/p7zip_9.20.1/contrib/gzip-like_CLI_wrapper_for_7z/p7zip	Sat Sep 15 23:18:55 2012 +0000
@@ -0,0 +1,144 @@
+#!/bin/sh
+# gzip-like CLI wrapper for p7zip
+# version 2.0
+#
+# History
+#  2.0 :
+#    - support for -filename, "file name"
+#    - p7zip file1 file2 ...
+
+set -e
+
+usage ()
+  {
+    echo "Usage: $0 [-d] [-h|--help] [--] [ name ... ]"
+    echo ""
+    echo "    -h print this help"
+    echo "    -d decompress file"
+    echo "    -- treats  all  subsequent  arguments  as  file names, even if they start with a dash"
+    echo ""
+    exit 1
+  }
+
+doit()
+{
+  compress=$1
+  file="$2"
+  
+  if [ "${file}" != "" ] ; then
+    if ${compress} ; then
+      if [ -f "${file}" ] ; then
+        rm -f -- "${file}.7z"
+        7za a -- "${file}.7z" "${file}"
+        if [ "$?" != "0" ] ; then
+          rm -f -- "${file}.7z"
+          exit 1
+        fi
+        rm -- "${file}"
+      else
+        exit 1
+      fi
+    else
+      case "${file}" in
+        *.7z)
+          if [ -f "${file}" ] ; then
+            7za x -- "${file}"
+            if [ "$?" != "0" ] ; then
+              exit 1
+            fi
+            rm -- "${file}"
+           else
+             exit 1
+           fi
+        ;;
+        *)
+          echo "$0: ${file}: unknown suffix"
+          exit 1
+        ;;
+      esac
+    fi
+    return 0
+  fi
+  
+  P7ZIPTMP=${TMP:-/tmp}
+  tmp=`mktemp ${P7ZIPTMP}/p7zip.XXXXXXXX`
+  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}
+    7za a -si -- ${tmp} >/dev/null
+    if [ "$?" != "0" ] ; then
+      exit 1
+    fi
+    cat ${tmp}
+  else
+    cat > ${tmp}
+    7za x -so -- ${tmp} 2>/dev/null | cat
+    if [ "$?" != "0" ] ; then
+      exit 1
+    fi
+  fi
+  
+  rm -f -- ${tmp}
+  return 0
+}
+
+
+## MAIN
+
+compress=true
+flag=true
+file=""
+
+# make sure they're present, before we screw up
+for i in mktemp 7za rm cat tty ; do
+  if ! which $i > /dev/null ; then
+    echo "$0: $i: command not found"
+    exit 1
+  fi
+done
+
+# files and flags
+while [ "$#" != "0" ] ; do
+  case "$1" in
+    -d)
+      compress=false # decompressing
+      ;;
+    -c)
+      echo "$0: ignoring $1 option (not yet implemented)"
+      ;;
+    -h|--help)
+      usage
+      ;;
+    --)
+      flag=false
+      shift
+      break
+      ;;
+    *)
+	doit ${compress} "$1"
+        file="$1"
+    ;;
+  esac
+  shift
+done
+
+# only files now
+while [ "$#" != "0" ] ; do
+  doit ${compress} "$1"
+  file="$1"
+  shift
+done
+
+if [ "${file}" = "" ] ; then
+  # compressing/decompressing using standart I/O
+  doit ${compress}
+fi
+
+exit 0
+