Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Ohmyzsh
Commits
46440e71
Commit
46440e71
authored
Jul 23, 2011
by
Robby Russell
Browse files
Merge pull request #208 from sorin-ionescu/plugin-extract
extract plugin
parents
250bee9c
a5c38325
Changes
4
Hide whitespace changes
Inline
Side-by-side
lib/aliases.zsh
View file @
46440e71
...
...
@@ -22,4 +22,3 @@ alias sl=ls # often screw this up
alias
afind
=
'ack-grep -il'
alias
x
=
extract
lib/functions.zsh
View file @
46440e71
...
...
@@ -15,38 +15,3 @@ function take() {
cd
$1
}
function
extract
()
{
unset
REMOVE_ARCHIVE
if
test
"
$1
"
=
"-r"
;
then
REMOVE
=
1
shift
fi
if
[[
-f
$1
]]
;
then
case
$1
in
*
.tar.bz2
)
tar
xvjf
$1
;;
*
.tar.gz
)
tar
xvzf
$1
;;
*
.tar.xz
)
tar
xvJf
$1
;;
*
.tar.lzma
)
tar
--lzma
-xvf
$1
;;
*
.bz2
)
bunzip
$1
;;
*
.rar
)
unrar x
$1
;;
*
.gz
)
gunzip
$1
;;
*
.tar
)
tar
xvf
$1
;;
*
.tbz2
)
tar
xvjf
$1
;;
*
.tgz
)
tar
xvzf
$1
;;
*
.zip
)
unzip
$1
;;
*
.Z
)
uncompress
$1
;;
*
.7z
)
7z x
$1
;;
*
)
echo
"'
$1
' cannot be extracted via >extract<"
;;
esac
if
[[
$REMOVE_ARCHIVE
-eq
1
]]
;
then
echo
removing
"
$1
"
;
/bin/rm
"
$1
"
;
fi
else
echo
"'
$1
' is not a valid file"
fi
}
plugins/extract/_extract
0 → 100644
View file @
46440e71
#compdef extract
#autoload
_arguments \
'(-r --remove)'{-r,--remove}'[Remove archive.]' \
"*::archive file:_files -g '(#i)*.(tar|tgz|tbz|tbz2|txz|tlz|gz|bz2|xz|lzma|Z|zip|rar|7z|deb)(-.)'" && return 0
plugins/extract/extract.plugin.zsh
0 → 100644
View file @
46440e71
# ------------------------------------------------------------------------------
# FILE: extract.plugin.zsh
# DESCRIPTION: oh-my-zsh plugin file.
# AUTHOR: Sorin Ionescu (sorin.ionescu@gmail.com)
# VERSION: 1.0.1
# ------------------------------------------------------------------------------
function
extract
()
{
local
remove_archive
local
success
local
file_name
local
extract_dir
if
((
$#
==
0
))
;
then
echo
"Usage: extract [-option] [file ...]"
echo
echo
Options:
echo
" -r, --remove Remove archive."
echo
echo
"Report bugs to <sorin.ionescu@gmail.com>."
fi
remove_archive
=
1
if
[[
"
$1
"
==
"-r"
]]
||
[[
"
$1
"
==
"--remove"
]]
;
then
remove_archive
=
0
shift
fi
while
((
$#
>
0
))
;
do
if
[[
!
-f
"
$1
"
]]
;
then
echo
"extract: '
$1
' is not a valid file"
1>&2
shift
continue
fi
success
=
0
file_name
=
"
$(
basename
"
$1
"
)
"
extract_dir
=
"
$(
echo
"
$file_name
"
|
sed
"s/
\.
${
1
##*.
}
//g"
)
"
case
"
$1
"
in
(
*
.tar.gz|
*
.tgz
)
tar
xvzf
"
$1
"
;;
(
*
.tar.bz2|
*
.tbz|
*
.tbz2
)
tar
xvjf
"
$1
"
;;
(
*
.tar.xz|
*
.txz
)
tar
--xz
--help
&> /dev/null
\
&&
tar
--xz
-xvf
"
$1
"
\
||
xzcat
"
$1
"
|
tar
xvf -
;;
(
*
.tar.zma|
*
.tlz
)
tar
--lzma
--help
&> /dev/null
\
&&
tar
--lzma
-xvf
"
$1
"
\
||
lzcat
"
$1
"
|
tar
xvf -
;;
(
*
.tar
)
tar
xvf
"
$1
"
;;
(
*
.gz
)
gunzip
"
$1
"
;;
(
*
.bz2
)
bunzip2
"
$1
"
;;
(
*
.xz
)
unxz
"
$1
"
;;
(
*
.lzma
)
unlzma
"
$1
"
;;
(
*
.Z
)
uncompress
"
$1
"
;;
(
*
.zip
)
unzip
"
$1
"
-d
$extract_dir
;;
(
*
.rar
)
unrar e
-ad
"
$1
"
;;
(
*
.7z
)
7za x
"
$1
"
;;
(
*
.deb
)
mkdir
-p
"
$extract_dir
/control"
mkdir
-p
"
$extract_dir
/data"
cd
"
$extract_dir
"
;
ar vx
"../
${
1
}
"
>
/dev/null
cd
control
;
tar
xzvf ../control.tar.gz
cd
../data
;
tar
xzvf ../data.tar.gz
cd
..
;
rm
*
.tar.gz debian-binary
cd
..
;;
(
*
)
echo
"extract: '
$1
' cannot be extracted"
1>&2
success
=
1
;;
esac
((
success
=
$success
>
0 ?
$success
:
$?
))
((
$success
==
0
))
&&
((
$remove_archive
==
0
))
&&
rm
"
$1
"
shift
done
}
alias
x
=
extract
# add extract completion function to path
fpath
=(
$ZSH
/plugins/extract
$fpath
)
autoload
-U
compinit
compinit
-i
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment