# HG changeset patch # User František Kučera # Date 1572123663 -7200 # Node ID 3f47b43e528dc89f6b6da4bb59c0af3c627ba11f # Parent 4353cd19a6b5fc5bdc18030b909abb2cf4617d15 bash-completion script diff -r 4353cd19a6b5 -r 3f47b43e528d bash-completion.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bash-completion.sh Sat Oct 26 23:01:03 2019 +0200 @@ -0,0 +1,72 @@ +# Relational pipes +# Copyright © 2019 František Kučera (Frantovo.cz, GlobalCode.info) +# +# 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, version 3 of the License. +# +# 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 . + +_relpipe_in_filesystem_completion() { + local w0 w1 w2 + + COMPREPLY=() + w0=${COMP_WORDS[COMP_CWORD]} + w1=${COMP_WORDS[COMP_CWORD-1]} + w2=${COMP_WORDS[COMP_CWORD-2]} + + + FILE_FIELDS=( + "path" + "name" + "size" + "path_absolute" + "path_canonical" + "type" + "symlink_target_type" + "symlink_target" + "owner" + "group" + "content" + ) + + XATTR_FIELDS=( + "mime_type" + "charset" + "creator" + "xdg.comment" + "xdg.origin.url" + "xdg.origin.email.subject" + "xdg.language" + "xdg.publisher" + "dublincore.title" + "dublincore.creator" + "dublincore.rights" + ) + + + if [[ "$w1" == "--relation" && "x$w0" == "x" ]]; then COMPREPLY=("''") + elif [[ "$w1" == "--as" && "x$w0" == "x" ]]; then COMPREPLY=("''") + elif [[ "$w1" == "--option" && "x$w0" == "x" ]]; then COMPREPLY=("''") + elif [[ "$w2" == "--option" && "x$w0" == "x" ]]; then COMPREPLY=("''") + elif [[ "$w1" == "--file" ]]; then COMPREPLY=($(compgen -W "${FILE_FIELDS[*]}" -- "$w0")) + elif [[ "$w1" == "--xattr" ]]; then COMPREPLY=($(compgen -W "${XATTR_FIELDS[*]}" -- "$w0")) + else + OPTIONS=( + "--relation" + "--file" + "--xattr" + "--as" + "--option" + ) + COMPREPLY=($(compgen -W "${OPTIONS[*]}" -- "$w0")) + fi +} + +complete -F _relpipe_in_filesystem_completion relpipe-in-filesystem