Added Perforce plugin.
[profile.git] / .vim / perforce / restor.sh
diff --git a/.vim/perforce/restor.sh b/.vim/perforce/restor.sh
new file mode 100755 (executable)
index 0000000..2da076d
--- /dev/null
@@ -0,0 +1,125 @@
+#!/bin/bash
+# Author: Hari Krishna Dara ( hari_vim at yahoo dot com ) 
+# Last Change: 06-Jan-2004 @ 19:07
+# Requires:
+#   - bash or ksh (tested on cygwin and MKS respectively).
+#   - Info Zip for the -z option to work (comes with linux/cygwin). Download for
+#     free from:
+#       http://www.info-zip.org/
+# Version: 1.1.0
+# Licence: This program is free software; you can redistribute it and/or
+#          modify it under the terms of the GNU General Public License.
+#          See http://www.gnu.org/copyleft/gpl.txt 
+usage()
+{
+cat <<END
+$0 <input package>
+  The input package is the name of the backup directory or the archive file(with
+  or without extension).
+END
+}
+
+inputType=''
+inputPackage=''
+verboseMode=1
+if [ -d $1 ]; then
+    inputType='dir'
+    inputPackage=$1
+elif [ -r $1.zip ]; then
+    inputType='zip'
+    inputPackage=$1.zip
+elif [ -r $1.tar.gz ]; then
+    inputType='tar'
+    inputPackage=$1.tar.gz
+    tarOpt='z'
+elif [ -r $1.tar.bz2 ]; then
+    inputType='tar'
+    inputPackage=$1.tar.bz2
+    tarOpt='j'
+elif [ -r $1.tar.Z ]; then
+    inputType='tar'
+    inputPackage=$1.tar.Z
+    tarOpt='Z'
+elif [ -r $1.tar ]; then
+    inputType='tar'
+    inputPackage=$1.tar
+    tarOpt=''
+elif [ -r $1 ]; then
+    case $1 in
+    *.zip)
+       inputType='zip'
+       ;;
+    *.tar.gz)
+       inputType='tar'
+       tarOpt='z'
+       ;;
+    *.tar.bz2)
+       inputType='tar'
+       tarOpt='j'
+       ;;
+    *.tar.Z)
+       inputType='tar'
+       tarOpt='Z'
+       ;;
+    *.tar)
+       inputType='tar'
+       tarOpt=''
+       ;;
+    *)
+       echo "$0: Unknown input package type."
+       exit 1
+       ;;
+    esac
+    inputPackage=$1
+else
+    echo "$0: No input package found for $1"
+    exit 1
+fi
+
+if [ $inputType = 'dir' ]; then
+    listCmd="find $inputPackage -type f -print | sed -e 's;^$1/*;;'"
+    copyCmd="cp"
+    if [ $verboseMode -ne 0 ]; then
+       copyCmd="$copyCmd -v"
+    fi
+    copyCmd="$copyCmd -r $inputPackage/* ."
+elif [ $inputType = 'zip' ]; then
+    listCmd="unzip -l -qq $inputPackage | awk 'BEGIN{OFS=\"\"}{\$1=\"\"; \$2=\"\"; \$3=\"\"; print \$0}'"
+    copyCmd="unzip"
+    if [ $verboseMode -ne 1 ]; then
+       copyCmd="$copyCmd -q"
+    fi
+    copyCmd="$copyCmd $inputPackage.zip"
+elif [ $inputType = 'tar' ]; then
+    listCmd="tar -t${tarOpt}f $inputPackage"
+    copyCmd="tar"
+    if [ $verboseMode -ne 0 ]; then
+       copyCmd="$copyCmd -v"
+    fi
+    copyCmd="$copyCmd -x${tarOpt}f $inputPackage"
+fi
+
+if [ $verboseMode -eq 1 ]; then
+    echo "Opening files in Perforce for edit."
+fi
+discardOutput=''
+if [ $verboseMode -eq 0 ]; then
+    discardOutput=' > /dev/null'
+fi
+#eval $listCmd | cat
+eval $listCmd | p4 -x - edit $discardOutput
+if [ $? -ne 0 ]; then
+    echo "$0: There was an error opening files in Perforce for edit."
+    echo "Make sure you are in the right directory and try again."
+    exit 1
+fi
+
+if [ $verboseMode -eq 1 ]; then
+    echo "$0: Copying files to the target directories."
+fi
+#echo $copyCmd
+eval $copyCmd
+if [ $? -ne 0 ]; then
+    echo "$0: Error copying files."
+    exit 1
+fi