diff --git a/completions/Makefile.am b/completions/Makefile.am index cccc757aa15..3a76aa79c4a 100644 --- a/completions/Makefile.am +++ b/completions/Makefile.am @@ -125,6 +125,7 @@ cross_platform = 2to3 \ _flamegraph \ fprintd-delete \ fprintd-enroll \ + free \ freeciv \ freeciv-server \ function \ diff --git a/completions/free b/completions/free new file mode 100644 index 00000000000..bbf55cbe21d --- /dev/null +++ b/completions/free @@ -0,0 +1,21 @@ +# bash completion for free(1) -*- shell-script -*- + +_comp_cmd_free() +{ + local cur prev words cword comp_args + _comp_initialize -- "$@" || return + + local noargopts='!(-*|*[cs]*)' + case $prev in + --help | --version | --count | --seconds | -${noargopts}[hVcs]) + return + ;; + esac + + if [[ $cur == -* ]]; then + _comp_compgen_help || _comp_compgen_usage + fi +} && + complete -F _comp_cmd_free free + +# ex: filetype=sh diff --git a/test/t/Makefile.am b/test/t/Makefile.am index 303f49097eb..ec64fbcb51c 100644 --- a/test/t/Makefile.am +++ b/test/t/Makefile.am @@ -182,6 +182,7 @@ EXTRA_DIST = \ test_fprintd_enroll.py \ test_fprintd_list.py \ test_fprintd_verify.py \ + test_free.py \ test_freebsd_update.py \ test_freeciv.py \ test_freeciv_server.py \ diff --git a/test/t/test_free.py b/test/t/test_free.py new file mode 100644 index 00000000000..c28bd0f288a --- /dev/null +++ b/test/t/test_free.py @@ -0,0 +1,11 @@ +import pytest + + +class TestFree: + @pytest.mark.complete("free ") + def test_basic(self, completion): + assert not completion + + @pytest.mark.complete("free -", require_cmd=True) + def test_options(self, completion): + assert completion diff --git a/test/test-cmd-list.txt b/test/test-cmd-list.txt index acb7622cbe6..a2b6f40a8c2 100644 --- a/test/test-cmd-list.txt +++ b/test/test-cmd-list.txt @@ -103,6 +103,7 @@ fmt fold fprintd-enroll fprintd-verify +free freeciv freeciv-server fusermount