gstreamer/data/bash-completion/helpers/gst.in
Stéphane Cerveau d093b2894b bash-completion: various bash fixes
-d tests the folder which is existing but with .in file, so I prefered
the -f to test if the gst file was available which is not the case, so
it fallbacks on the pkg-config

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/766>
2021-03-03 09:43:36 +01:00

57 lines
1.7 KiB
Text

# GStreamer
# Copyright (C) 2015 Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
#
# bash/zsh completion support for common gstreamer options
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library 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
# Library General Public License for more details.
#
# You should have received a copy of the GNU Library General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
# Boston, MA 02110-1301, USA.
_GST_HELPER="@GST_COMPLETION_HELPER_INSTALLED@"
if [[ ! -x "$_GST_HELPER" ]]
then
helper="$(pkg-config --variable=helpersdir gstreamer-@GST_API_VERSION@)/gst-completion-helper"
if [ -x "$helper" ]
then
_GST_HELPER=$helper
fi
fi
___gst_debug_level () { _gst_mandatory_argument; }
___gst_debug () { _gst_mandatory_argument; }
___gst_debug_color_mode () { _gst_mandatory_argument; }
___gst_plugin_path () { _gst_mandatory_argument; }
___gst_plugin_load () { _gst_mandatory_argument; }
_gst_all_arguments ()
{
COMPREPLY=( $(compgen -W "$($1 --help-all | grep "^ -" | grep -oh '[[:graph:]]*--[[:graph:]]*\|-[[:alpha:]],' | cut -d'=' -f1 | cut -d',' -f1)" -- $cur) )
}
_gst_mandatory_argument ()
{
__app=$1
if [[ -z $__app ]]
then
__app=gst-launch-1.0
fi
if [[ "$prev" != "$command" ]]
then
_gst_all_arguments $__app
else
COMPREPLY=("$cur")
fi
}