--- /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 <http://www.gnu.org/licenses/>.
+
+_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