[Bash-completion-commits] [bash-completion] 01/01: lz4: New completion.

Ville Skyttä scop-guest at moszumanska.debian.org
Sun Jan 5 22:42:16 UTC 2014


This is an automated email from the git hooks/post-receive script.

scop-guest pushed a commit to branch master
in repository bash-completion.

commit a2e2f198d820c55857e372f6477c6fe07a23df92
Author: Ville Skyttä <ville.skytta at iki.fi>
Date:   Mon Jan 6 00:41:23 2014 +0200

    lz4: New completion.
---
 completions/.gitignore       |  1 +
 completions/Makefile.am      |  5 +++++
 completions/lz4              | 53 ++++++++++++++++++++++++++++++++++++++++++++
 test/completion/lz4.exp      |  1 +
 test/lib/completions/lz4.exp | 18 +++++++++++++++
 5 files changed, 78 insertions(+)

diff --git a/completions/.gitignore b/completions/.gitignore
index c6c34e1..d13d6ea 100644
--- a/completions/.gitignore
+++ b/completions/.gitignore
@@ -89,6 +89,7 @@ lvrename
 lvresize
 lvs
 lvscan
+lz4c
 mailsnarf
 mdecrypt
 mencoder
diff --git a/completions/Makefile.am b/completions/Makefile.am
index f7823ec..7039568 100644
--- a/completions/Makefile.am
+++ b/completions/Makefile.am
@@ -486,6 +486,7 @@ CLEANFILES = \
 	lvresize \
 	lvs \
 	lvscan \
+	lz4c \
 	mailsnarf \
 	mdecrypt \
 	mencoder \
@@ -741,6 +742,10 @@ symlinks: $(targetdir) $(DATA)
 		rm -f $(targetdir)/$$file && \
 			$(LN_S) lvm $(targetdir)/$$file ; \
 	done
+	for file in lz4c ; do \
+		rm -f $(targetdir)/$$file && \
+			$(LN_S) lz4 $(targetdir)/$$file ; \
+	done
 	for file in clzip pdlzip plzip ; do \
 		rm -f $(targetdir)/$$file && \
 			$(LN_S) lzip $(targetdir)/$$file ; \
diff --git a/completions/lz4 b/completions/lz4
new file mode 100644
index 0000000..bde430b
--- /dev/null
+++ b/completions/lz4
@@ -0,0 +1,53 @@
+# lz4 completion                                           -*- shell-script -*-
+
+_lz4()
+{
+    local cur prev words cword
+    _init_completion || return
+
+    case $prev in
+        -b)
+            _filedir
+            return
+            ;;
+    esac
+
+    if [[ "$cur" == -* ]]; then
+        COMPREPLY=( $( compgen -W \
+            '$( _parse_help "$1" -h | sed -e "/#/d" ) -B{4..7} -i{1..9}' \
+            -- "$cur" ) )
+        return
+    fi
+
+    local args word xspec="*.?(t)lz4"
+    _count_args
+    [[ $args -gt 2 ]] && return
+
+    for word in ${words[@]}; do
+        case $word in
+            -*[dt]*)
+                case $args in
+                    1) xspec="!"$xspec ;;
+                    2) [[ $word == *t* ]] && return
+                esac
+                break
+                ;;
+            -z)
+                case $args in
+                    1) xspec= ;;
+                    2) xspec="!"$xspec ;;
+                esac
+                break
+                ;;
+        esac
+    done
+
+    _expand || return 0
+    local IFS=$'\n'
+    compopt -o filenames
+    COMPREPLY=( $( compgen -f -X "$xspec" -- "$cur" ) \
+        $( compgen -d -- "$cur" ) )
+} &&
+complete -F _lz4 lz4 lz4c
+
+# ex: ts=4 sw=4 et filetype=sh
diff --git a/test/completion/lz4.exp b/test/completion/lz4.exp
new file mode 100644
index 0000000..9db680e
--- /dev/null
+++ b/test/completion/lz4.exp
@@ -0,0 +1 @@
+assert_source_completions lz4
diff --git a/test/lib/completions/lz4.exp b/test/lib/completions/lz4.exp
new file mode 100644
index 0000000..df39293
--- /dev/null
+++ b/test/lib/completions/lz4.exp
@@ -0,0 +1,18 @@
+proc setup {} {
+    save_env
+}
+
+
+proc teardown {} {
+    assert_env_unmodified
+}
+
+
+setup
+
+
+assert_complete_any "lz4 "
+sync_after_int
+
+
+teardown

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/bash-completion/bash-completion.git



More information about the Bash-completion-commits mailing list