/usr/share/bash-completion/completions/snap is in snapd 2.32.5+18.04.
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 | # -*- sh -*-
#
# Copyright (C) 2016-2017 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/>.
_complete_snap() {
# TODO: add support for sourcing this function from the core snap.
local cur prev words cword
_init_completion -n : || return
if [[ ${#words[@]} -le 2 ]]; then
# we're completing on the first word
COMPREPLY=($(GO_FLAGS_COMPLETION=1 "${words[@]}"))
return 0
fi
local command
if [[ ${words[1]} =~ ^- ]]; then
# global options take no args
return 0
fi
for w in "${words[@]:1}"; do
if [[ "$w" == "-h" || "$w" == "--help" ]]; then
# completing on help gets confusing
return 0
fi
done
command=${words[1]}
# Only split on newlines
local IFS=$'\n'
# now we pass _just the bit that's being completed_ of the command
# to snap for it to figure it out. go-flags isn't smart enough to
# look at COMP_WORDS etc. itself.
COMPREPLY=($(GO_FLAGS_COMPLETION=1 snap "$command" "$cur"))
case $command in
install|info|sign-build)
_filedir "snap"
;;
ack)
_filedir
;;
try)
_filedir -d
;;
connect|disconnect|interfaces)
# interface completions will only end in ':' when they all
# end in ':' (i.e. you either get offered snap names up to
# and including the ':', or you get offered the whole thing)
if [[ "$COMPREPLY" == *: ]]; then
compopt -o nospace
fi
esac
__ltrim_colon_completions "$cur"
return 0
}
complete -F _complete_snap snap
|