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 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
|
#
# Bash completion support for AppStream's console commands.
#
# Copyright (C) 2007 James Bowes <jbowes@dangerouslyinc.com>
# Copyright (C) 2010 Richard Hughes <richard@hughsie.com>
# Copyright (C) 2025 Matthias Klumpp <matthias@tenstral.net>
#
# Licensed under the GNU General Public License Version 2
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# To use the completion:
# 1. Copy this file somewhere (e.g. ~/.as-completion.sh).
# 2. Add the following line to your .bashrc:
# source ~/.as-completion.sh
__ascli_commandlist="
check-license
check-syscompat
compose
convert
dump
get
install
is-satisfied
list-categories
make-desktop-file
metainfo-to-news
new-template
news-to-metainfo
put
refresh
remove
search
status
sysinfo
validate
validate-tree
vercmp
what-provides
"
__asclicomp ()
{
local all c s=$'\n' IFS=' '$'\t'$'\n'
local cur="${COMP_WORDS[COMP_CWORD]}"
if [ $# -gt 2 ]; then
cur="$3"
fi
for c in $1; do
case "$c$4" in
*.) all="$all$c$4$s" ;;
*) all="$all$c$4 $s" ;;
esac
done
IFS=$s
COMPREPLY=($(compgen -P "$2" -W "$all" -- "$cur"))
return
}
_ascli ()
{
local i c=1 command
while [ $c -lt $COMP_CWORD ]; do
i="${COMP_WORDS[c]}"
case "$i" in
--version|--help|--verbose|-v|-n|-h|-?) ;;
*) command="$i"; break ;;
esac
c=$((++c))
done
if [ $c -eq $COMP_CWORD -a -z "$command" ]; then
case "${COMP_WORDS[COMP_CWORD]}" in
--*=*) COMPREPLY=() ;;
--*) __asclicomp "
--version
--verbose
--no-color
--help
"
;;
-*) __asclicomp "
-v
-h
-?
--version
--verbose
--help
--no-color
"
;;
*) __asclicomp "$__ascli_commandlist" ;;
esac
return
fi
case "$command" in
*) COMPREPLY=() ;;
esac
}
complete -o default -o nospace -F _ascli appstreamcli
|