aboutsummaryrefslogtreecommitdiffstats
path: root/src/_pixz
diff options
context:
space:
mode:
authorJindrich Pilar <pilar.jindrich@gmail.com>2016-02-27 21:29:22 +0100
committerJindrich Pilar <pilar.jindrich@gmail.com>2016-02-27 21:29:22 +0100
commit27cee0f99bb949e6f4580a307d3f0b6fcfd7a680 (patch)
treee1d70e66ebd8afbad9863343202cb46a34b25540 /src/_pixz
parentCompletion of dad added (diff)
downloadzsh-completions-27cee0f99bb949e6f4580a307d3f0b6fcfd7a680.tar
zsh-completions-27cee0f99bb949e6f4580a307d3f0b6fcfd7a680.tar.gz
zsh-completions-27cee0f99bb949e6f4580a307d3f0b6fcfd7a680.tar.bz2
zsh-completions-27cee0f99bb949e6f4580a307d3f0b6fcfd7a680.tar.lz
zsh-completions-27cee0f99bb949e6f4580a307d3f0b6fcfd7a680.tar.xz
zsh-completions-27cee0f99bb949e6f4580a307d3f0b6fcfd7a680.tar.zst
zsh-completions-27cee0f99bb949e6f4580a307d3f0b6fcfd7a680.zip
Completion fo pixz added
Diffstat (limited to 'src/_pixz')
-rw-r--r--src/_pixz100
1 files changed, 100 insertions, 0 deletions
diff --git a/src/_pixz b/src/_pixz
new file mode 100644
index 0000000..f15c3ca
--- /dev/null
+++ b/src/_pixz
@@ -0,0 +1,100 @@
+#compdef pixz
+# ------------------------------------------------------------------------------
+# Copyright (c) 2016 Github zsh-users - http://github.com/zsh-users
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# * Neither the name of the zsh-users nor the
+# names of its contributors may be used to endorse or promote products
+# derived from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL ZSH-USERS BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# ------------------------------------------------------------------------------
+# Description
+# -----------
+#
+# Completion script for pixz a parallel, indexing version of xz. (https://github.com/vasi/pixz).
+#
+# ------------------------------------------------------------------------------
+# Authors
+# -------
+#
+# * Jindřich Pilař (https://github.com/JindrichPilar)
+#
+# ------------------------------------------------------------------------------
+
+local -a files index
+files=()
+index=()
+
+_pixz_compressed_files() {
+ files=("${(f)$(ls -l | grep '.tpxz$\|.xz$' | rev | cut -d' ' -f1 | rev)}")
+}
+
+_pixz_load_file_index() {
+ index=("${(f)$(pixz -l $1)}")
+}
+
+_pixz() {
+
+ _arguments -C \
+ '(- 1 *)'-h"[Show help and exit]" \
+ '(- 1 *)'-l"[List tarball contents very fast]:file:->xzfiles" \
+ '(- 1 *)'-x"[Extract one file very fast]:filepath:->filepath" \
+ '(- 1 *)'-d"[Decompress]:file:->xzfiles" \
+ "-i[Input]:file:->files" \
+ "-o[Output]:output:->outputxz" \
+ "-p[Use a maximum of NUM CPU-intensive threads]:cpu:->cpus" \
+ "-t[Don't assume input is in tar format]" \
+ "-k[Keep original input (do not remove it)]" \
+ "-e[Use "extreme" compression, which is much slower]" \
+ "-f[Set the size of each compression block, relative to the LZMA dictionary size (default is 2.0)]:num" \
+ "-q[Set the number of blocks to allocate for the compression queue (default is 1.3 * cores + 2)]:num" \
+ '1:inputfile:->files' \
+ '2:outputfile' \
+ '*: : :->args' \
+
+ case "$state" in
+ (cmds)
+ _describe -t commands 'commands' commands
+ ;;
+ (xzfiles)
+ _pixz_compressed_files
+ _describe -t files 'files' files
+ ;;
+ (files)
+ _files
+ ;;
+ (cpus)
+ local num_cpus cores
+ num_cpus=$(nproc)
+ cores=()
+ for i in {1..$num_cpus}; do
+ cores+=($i)
+ done
+ _describe -t cores 'cores' cores
+ ;;
+ (filepath)
+ ;;
+ (*)
+ ;;
+ esac
+}
+
+_pixz
+