File tree Expand file tree Collapse file tree 4 files changed +67
-0
lines changed Expand file tree Collapse file tree 4 files changed +67
-0
lines changed Original file line number Diff line number Diff line change @@ -51,6 +51,7 @@ bashcomp_DATA = 2to3 \
5151 check_db \
5252 check_perms \
5353 checksec \
54+ chflags \
5455 _chfn \
5556 chgrp \
5657 chkconfig \
Original file line number Diff line number Diff line change 1+ # chflags(1) completion -*- shell-script -*-
2+
3+ [[ $OSTYPE == * @ (bsd| darwin)* ]] || return 1
4+
5+ _comp_cmd_chflags ()
6+ {
7+ local cur prev words cword comp_args
8+ _comp_initialize -- " $@ " || return
9+
10+ if [[ $cur == -* ]]; then
11+ # Complete -options
12+ local w opts=" "
13+ for w in " ${words[@]} " ; do
14+ [[ $w == -R ]] && opts=" -H -L -P" && break
15+ done
16+ _comp_compgen -- -W ' -f -h -v -x -R $opts'
17+ else
18+ local REPLY
19+ # The first argument is a list of flags; the rest are filedir.
20+ _comp_count_args
21+ if (( REPLY == 1 )) ; then
22+ case " $OSTYPE " in
23+ * netbsd* )
24+ _comp_delimited , -W '
25+ arch opaque nodump sappnd schg uappnd uchg'
26+ ;;
27+ * openbsd* )
28+ _comp_delimited , -W ' arch nodump sappnd schg uappnd uchg'
29+ ;;
30+ * )
31+ _comp_delimited , -W '
32+ simmutable nosimmutable sappend nosappend archived
33+ noarchived sunlink nosunlink opaque noopaque nodump
34+ dump uimmutable nouimmutable uappend nouappend hidden
35+ nohidden uunlink nouunlink'
36+ ;;
37+ esac
38+ else
39+ _comp_compgen_filedir
40+ fi
41+ fi
42+ } &&
43+ complete -F _comp_cmd_chflags chflags
44+
45+ # ex: filetype=sh
Original file line number Diff line number Diff line change @@ -73,6 +73,7 @@ EXTRA_DIST = \
7373 test_check_db.py \
7474 test_check_perms.py \
7575 test_checksec.py \
76+ test_chflags.py \
7677 test_chfn.py \
7778 test_chgrp.py \
7879 test_chkconfig.py \
Original file line number Diff line number Diff line change 1+ import pytest
2+
3+
4+ class TestChflags :
5+ @pytest .mark .complete ("chflags no" )
6+ def test_basic (self , completion ):
7+ assert completion
8+
9+ @pytest .mark .complete ("chflags -" )
10+ def test_basic (self , completion ):
11+ assert completion and "-P" not in completion
12+
13+ @pytest .mark .complete ("chflags -R -" )
14+ def test_basic (self , completion ):
15+ assert "-P" in completion
16+
17+ @pytest .mark .complete ("chflags -v sappend " )
18+ def test_basic (self , completion ):
19+ assert completion
20+
You can’t perform that action at this time.
0 commit comments