# # Bash completion support for AppStream's console commands. # # Copyright (C) 2007 James Bowes # Copyright (C) 2010 Richard Hughes # Copyright (C) 2025 Matthias Klumpp # # 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