This file is indexed.

/etc/bash_completion.d/ufw is in ufw 0.34~rc-0ubuntu2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#
# Copyright 2009 Canonical Ltd.
#
#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License version 3,
#    as published by the Free Software Foundation.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
# Based on work by Didier Roche <didrocks@ubuntu.com>
#

_ufw_commands()
{
    commands=$(ufw --help | sed -e '1,/^Commands:/d' -e '/^Application profile commands:/Q' -e 's/^[ \t]\+\([a-z|]\+\)[ \t]\+.*/\1/g' -e 's/|/ /g' | uniq)
    echo "$commands app"
}

_ufw_app_commands()
{
    ufw --help | sed -e '1,/^Application profile commands:/d' -e '/^ [^ ]/!d' -e 's/[ \t]\+app[ \t]\+\([a-z|]\+\)[ \t]\+.*/\1/g'
}

_ufw_logging_commands()
{
    echo "off on low medium high full"
}

_ufw_default_commands()
{
    echo "allow deny reject"
}

_ufw_rule_commands()
{
    echo "`_ufw_default_commands` limit"
}

_ufw_show_commands()
{
    echo "raw"
}

_ufw_status_commands()
{
    echo "numbered verbose"
}

have ufw &&
_ufw()
{
    cur=${COMP_WORDS[COMP_CWORD]}
    prev=${COMP_WORDS[COMP_CWORD-1]}
    if [ $COMP_CWORD -eq 1 ]; then
        COMPREPLY=( $( compgen -W "$(_ufw_commands)" $cur ) )
    elif [ $COMP_CWORD -eq 2 ]; then
        case "$prev" in
        app)
            COMPREPLY=( $( compgen -W "$(_ufw_app_commands)" $cur ) )
            ;;
        status)
            COMPREPLY=( $( compgen -W "$(_ufw_status_commands)" $cur ) )
            ;;
        delete)
            COMPREPLY=( $( compgen -W "$(_ufw_rule_commands)" $cur ) )
            ;;
        logging)
            COMPREPLY=( $( compgen -W "$(_ufw_logging_commands)" $cur ) )
            ;;
        show)
            COMPREPLY=( $( compgen -W "$(_ufw_show_commands)" $cur ) )
            ;;
        default)
            COMPREPLY=( $( compgen -W "$(_ufw_default_commands)" $cur ) )
            ;;
        esac
    fi
}

[ "$have" ] && complete -F _ufw ufw