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
09d95251
Commit
09d95251
authored
Sep 29, 2016
by
Marc Cornellà
Browse files
extract: fix styling
parent
1ad2556c
Changes
2
Hide whitespace changes
Inline
Side-by-side
plugins/extract/_extract
View file @
09d95251
...
...
@@ -4,5 +4,3 @@
_arguments \
'(-r --remove)'{-r,--remove}'[Remove archive.]' \
"*::archive file:_files -g '(#i)*.(tar|tgz|tbz|tbz2|txz|tlz|gz|bz2|xz|lzma|Z|zip|ipsw|rar|7z|deb)(-.)'" && return 0
plugins/extract/extract.plugin.zsh
View file @
09d95251
# ------------------------------------------------------------------------------
# FILE: extract.plugin.zsh
# DESCRIPTION: oh-my-zsh plugin file.
# AUTHOR: Sorin Ionescu (sorin.ionescu@gmail.com)
# VERSION: 1.0.1
# ------------------------------------------------------------------------------
alias
x
=
extract
extract
()
{
local
remove_archive
local
success
local
file_name
local
extract_dir
function
extract
()
{
local
remove_archive
local
success
local
file_name
local
extract_dir
if
((
$#
==
0
))
;
then
cat
<<-
'
EOF
' >&2
Usage: extract [-option] [file ...]
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
Options:
-r, --remove Remove archive.
EOF
fi
remove_archive
=
1
if
[[
"
$1
"
==
"-r"
]]
||
[[
"
$1
"
==
"--remove"
]]
;
then
remove_archive
=
0
shift
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
while
((
$#
>
0
))
;
do
if
[[
!
-f
"
$1
"
]]
;
then
echo
"extract: '
$1
' is not a valid file"
>
&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
)
[
-z
$commands
[
pigz]
]
&&
tar
zxvf
"
$1
"
||
pigz
-dc
"
$1
"
|
tar
xv
;;
(
*
.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
)
[
-z
$commands
[
pigz]
]
&&
gunzip
"
$1
"
||
pigz
-d
"
$1
"
;;
(
*
.bz2
)
bunzip2
"
$1
"
;;
(
*
.xz
)
unxz
"
$1
"
;;
(
*
.lzma
)
unlzma
"
$1
"
;;
(
*
.Z
)
uncompress
"
$1
"
;;
(
*
.zip|
*
.war|
*
.jar|
*
.sublime-package|
*
.ipsw|
*
.xpi|
*
.apk
)
unzip
"
$1
"
-d
$extract_dir
;;
(
*
.rar
)
unrar x
-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
=
0
file_name
=
"
$(
basename
"
$1
"
)
"
extract_dir
=
"
$(
echo
"
$file_name
"
|
sed
"s/
\.
${
1
##*.
}
//g"
)
"
case
"
$1
"
in
(
*
.tar.gz|
*
.tgz
)
((
$+
commands[pigz]
))
&&
{
pigz
-dc
"
$1
"
|
tar
xv
}
||
tar
zxvf
"
$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
)
((
$+
commands[pigz]
))
&&
pigz
-d
"
$1
"
||
gunzip
"
$1
"
;;
(
*
.bz2
)
bunzip2
"
$1
"
;;
(
*
.xz
)
unxz
"
$1
"
;;
(
*
.lzma
)
unlzma
"
$1
"
;;
(
*
.Z
)
uncompress
"
$1
"
;;
(
*
.zip|
*
.war|
*
.jar|
*
.sublime-package|
*
.ipsw|
*
.xpi|
*
.apk
)
unzip
"
$1
"
-d
$extract_dir
;;
(
*
.rar
)
unrar x
-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"
>
&2
success
=
1
;;
esac
((
success
=
$success
>
0 ?
$success
:
$?
))
((
$success
==
0
))
&&
((
$remove_archive
==
0
))
&&
rm
"
$1
"
shift
done
((
success
=
$success
>
0 ?
$success
:
$?
))
((
$success
==
0
))
&&
((
$remove_archive
==
0
))
&&
rm
"
$1
"
shift
done
}
alias
x
=
extract
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