From a2e2f198d820c55857e372f6477c6fe07a23df92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Mon, 6 Jan 2014 00:41:23 +0200 Subject: [PATCH] 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(+) create mode 100644 completions/lz4 create mode 100644 test/completion/lz4.exp create mode 100644 test/lib/completions/lz4.exp diff --git a/completions/.gitignore b/completions/.gitignore index c6c34e1d..d13d6ea4 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 f7823ec8..70395680 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 00000000..bde430b0 --- /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 00000000..9db680ed --- /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 00000000..df392939 --- /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