]>
git.rmz.io Git - dotfiles.git/blob - zsh/plugins/extract/extract.plugin.zsh
1 # ------------------------------------------------------------------------------
2 # FILE: extract.plugin.zsh
3 # DESCRIPTION: oh-my-zsh plugin file.
4 # AUTHOR: Sorin Ionescu (sorin.ionescu@gmail.com)
6 # ------------------------------------------------------------------------------
15 if (( $# == 0 )); then
16 echo "Usage: extract [-option] [file ...]"
19 echo " -r, --remove Remove archive."
21 echo "Report bugs to <sorin.ionescu@gmail.com>."
25 if [[ "$1" == "-r" ]] || [[ "$1" == "--remove" ]]; then
30 while (( $# > 0 )); do
31 if [[ ! -f "$1" ]]; then
32 echo "extract: '$1' is not a valid file" 1>&2
38 file_name
="$( basename "$1" )"
39 extract_dir
="$( echo "$file_name" | sed "s/\.${1##*.}//g" )"
41 (*.
tar.gz
|*.tgz
) tar xvzf
"$1" ;;
42 (*.
tar.bz2
|*.tbz
|*.tbz2
) tar xvjf
"$1" ;;
43 (*.
tar.xz
|*.txz
) tar --xz --help &> /dev
/null \
44 && tar --xz -xvf "$1" \
45 || xzcat
"$1" | tar xvf
- ;;
46 (*.
tar.zma
|*.tlz
) tar --lzma --help &> /dev
/null \
47 && tar --lzma -xvf "$1" \
48 || lzcat
"$1" | tar xvf
- ;;
49 (*.
tar) tar xvf
"$1" ;;
51 (*.bz2
) bunzip2
"$1" ;;
53 (*.lzma
) unlzma
"$1" ;;
54 (*.Z
) uncompress "$1" ;;
55 (*.
zip) unzip "$1" -d $extract_dir ;;
56 (*.rar
) unrar e
-ad "$1" ;;
59 mkdir -p "$extract_dir/control"
60 mkdir -p "$extract_dir/data"
61 cd "$extract_dir"; ar vx
"../${1}" > /dev
/null
62 cd control
; tar xzvf ..
/control.
tar.gz
63 cd ..
/data
; tar xzvf ..
/data.
tar.gz
64 cd ..
; rm *.
tar.gz debian
-binary
68 echo "extract: '$1' cannot be extracted" 1>&2
73 (( success
= $success > 0 ?
$success : $?
))
74 (( $success == 0 )) && (( $remove_archive == 0 )) && rm "$1"