mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-25 19:21:06 +00:00
completion: Place the completion helper in libexec
This patch reorganize the bash completion scripts in order to install the binary helper (gst-completion-helper) in libexec path rather then share folder. Most Linux hierarchy compliance requires that no binary executable are placed in share. We also cleanup the unused .pc entries and remove copy pasted parts of the script. Note that other project including the common helper, should now use $_GST_HELPER to read the binary executable gst-completion-helper. This helper is not longer version, as it is placed in a versionned subfolder (libexec/gstreamer.10) just like the other helpers (scanner and ptp).
This commit is contained in:
parent
c361365890
commit
bae1fe254a
10 changed files with 64 additions and 49 deletions
20
configure.ac
20
configure.ac
|
@ -153,11 +153,14 @@ then
|
|||
fi
|
||||
|
||||
PKG_CHECK_MODULES([BASH_COMPLETION], [bash-completion >= 2.0],
|
||||
[BASH_COMPLETION_DIR="`eval pkg-config $extra_args --variable=completionsdir bash-completion`"],
|
||||
[BASH_COMPLETION_DIR="$datadir/bash-completion/completions"])
|
||||
PKG_CHECK_MODULES([BASH_COMPLETION], [bash-completion >= 2.0],
|
||||
[BASH_HELPERS_DIR="`eval pkg-config $extra_args --variable=helpersdir bash-completion`"],
|
||||
[BASH_HELPERS_DIR="$datadir/bash-completion/helpers"])
|
||||
[
|
||||
BASH_COMPLETION_DIR="`eval pkg-config $extra_args --variable=completionsdir bash-completion`"
|
||||
BASH_HELPERS_DIR="`eval pkg-config $extra_args --variable=helpersdir bash-completion`"
|
||||
],
|
||||
[
|
||||
BASH_COMPLETION_DIR="$datadir/bash-completion/completions"
|
||||
BASH_HELPERS_DIR="$datadir/bash-completion/helpers"
|
||||
])
|
||||
else
|
||||
BASH_COMPLETION_DIR="$with_bash_completion_dir/completions"
|
||||
BASH_HELPERS_DIR="$with_bash_completion_dir/helpers"
|
||||
|
@ -1013,6 +1016,12 @@ AC_DEFINE_UNQUOTED(GST_PLUGIN_SCANNER_INSTALLED,
|
|||
"$GST_PLUGIN_SCANNER_INSTALLED", [location of the installed gst-plugin-scanner])
|
||||
AC_SUBST(GST_PLUGIN_SCANNER_INSTALLED)
|
||||
|
||||
dnl completion helper locations
|
||||
AS_AC_EXPAND(GST_COMPLETION_HELPER_INSTALLED,${libexecdir}/gstreamer-$GST_API_VERSION/gst-completion-helper)
|
||||
AC_DEFINE_UNQUOTED(GST_COMPLETION_HELPER_INSTALLED,
|
||||
"$GST_COMPLETION_HELPER_INSTALLED", [location of the installed gst-completion-helper])
|
||||
AC_SUBST(GST_COMPLETION_HELPER_INSTALLED)
|
||||
|
||||
dnl ptp helper locations
|
||||
AS_AC_EXPAND(GST_PTP_HELPER_INSTALLED,${libexecdir}/gstreamer-$GST_API_VERSION/gst-ptp-helper)
|
||||
AC_DEFINE_UNQUOTED(GST_PTP_HELPER_INSTALLED,
|
||||
|
@ -1026,6 +1035,7 @@ AG_GST_CHECK_CHECKS
|
|||
AC_CONFIG_FILES(
|
||||
Makefile
|
||||
data/Makefile
|
||||
data/bash-completion/helpers/gst
|
||||
gst/Makefile
|
||||
gst/gstconfig.h
|
||||
gst/gstversion.h
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
if ENABLE_BASH_COMPLETION
|
||||
bashhelpersdir = $(BASH_HELPERS_DIR)
|
||||
dist_bashhelpers_DATA = bash-completion/helpers/gst
|
||||
bashcompletiondir = $(BASH_COMPLETION_DIR)
|
||||
dist_bashcompletion_DATA = completions/gst-inspect-1.0 completions/gst-launch-1.0
|
||||
dist_bashcompletion_DATA = bash-completion/completions/gst-inspect-1.0 \
|
||||
bash-completion/completions/gst-launch-1.0
|
||||
endif
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
_GST_HELPERDIR="${BASH_SOURCE[0]%/*}/../helpers"
|
||||
|
||||
if [[ ! -d "$_GST_HELPERDIR" ]]; then
|
||||
_GST_HELPERDIR="$(pkg-config --variable=helpersdir gstreamer-1.0)"
|
||||
_GST_HELPERDIR="$(pkg-config --variable=bashhelpersdir gstreamer-1.0)"
|
||||
else
|
||||
_GST_HELPERDIR=`cd "$_GST_HELPERDIR"; pwd`
|
||||
fi
|
||||
|
@ -29,11 +29,9 @@ fi
|
|||
# Common definitions
|
||||
. "$_GST_HELPERDIR"/gst
|
||||
|
||||
_GST_HELPER="$_GST_HELPERDIR/gst-completion-helper-1.0"
|
||||
|
||||
_gst_inspect_all_arguments ()
|
||||
{
|
||||
COMPREPLY=( $(compgen -W "$(gst-inspect-1.0 --help-all | grep -oh '[[:graph:]]*--[[:graph:]]*' | cut -d'=' -f1)" -- $cur) )
|
||||
_gst_all_arguments gst-inspect-1.0
|
||||
}
|
||||
|
||||
_gst_inspect_all_elements ()
|
||||
|
@ -41,7 +39,7 @@ _gst_inspect_all_elements ()
|
|||
COMPREPLY=( $(compgen -W "$($_GST_HELPER -l)" -- $cur) )
|
||||
}
|
||||
|
||||
_gstinspect___atleast_version () { _gst_mandatory_argument; }
|
||||
_gstinspect___atleast_version () { _gst_mandatory_argument gst-inspect-1.0; }
|
||||
|
||||
_gstinspect___exists ()
|
||||
{
|
||||
|
@ -56,7 +54,7 @@ __inspect_main ()
|
|||
do
|
||||
local var
|
||||
var="${COMP_WORDS[i]}"
|
||||
if [[ "$var" == "--"* ]]
|
||||
if [[ "$var" == "-"* ]]
|
||||
then
|
||||
command="$var"
|
||||
fi
|
||||
|
@ -73,7 +71,8 @@ __inspect_main ()
|
|||
|
||||
function_exists=$?
|
||||
|
||||
if [[ "$cur" == "--"* ]]; then
|
||||
if [[ "$cur" == "-"* ]]
|
||||
then
|
||||
_gst_inspect_all_arguments
|
||||
elif [ $function_exists -eq 0 ]
|
||||
then
|
|
@ -21,7 +21,7 @@
|
|||
_GST_HELPERDIR="${BASH_SOURCE[0]%/*}/../helpers"
|
||||
|
||||
if [[ ! -d "$_GST_HELPERDIR" ]]; then
|
||||
_GST_HELPERDIR="$(pkg-config --variable=helpersdir gstreamer-1.0)"
|
||||
_GST_HELPERDIR="$(pkg-config --variable=bashhelpersdir gstreamer-1.0)"
|
||||
else
|
||||
_GST_HELPERDIR=`cd "$_GST_HELPERDIR"; pwd`
|
||||
fi
|
||||
|
@ -29,11 +29,9 @@ fi
|
|||
# Common definitions
|
||||
. "$_GST_HELPERDIR"/gst
|
||||
|
||||
_GST_HELPER="$_GST_HELPERDIR/gst-completion-helper-1.0"
|
||||
|
||||
_gst_launch_all_arguments ()
|
||||
{
|
||||
COMPREPLY=( $(compgen -W "$(gst-launch-1.0 --help-all | grep -oh '[[:graph:]]*--[[:graph:]]*' | cut -d'=' -f1)" -- $cur) )
|
||||
_gst_all_arguments gst-launch-1.0
|
||||
}
|
||||
|
||||
_gst_complete_compatible_elements ()
|
||||
|
@ -51,7 +49,7 @@ _gst_complete_element_properties ()
|
|||
COMPREPLY=( $(compgen -W "$($_GST_HELPER --element-properties $previous_element)" -- $cur) )
|
||||
}
|
||||
|
||||
_gstlaunch___exclude_ () { _gst_mandatory_argument; }
|
||||
_gstlaunch___exclude_ () { _gst_mandatory_argument gst-launch-1.0; }
|
||||
|
||||
_gst_launch_main ()
|
||||
{
|
||||
|
@ -61,7 +59,7 @@ _gst_launch_main ()
|
|||
do
|
||||
local var
|
||||
var="${COMP_WORDS[i]}"
|
||||
if [[ "$var" == "--"* ]]
|
||||
if [[ "$var" == "-"* ]]
|
||||
then
|
||||
command="$var"
|
||||
fi
|
||||
|
@ -74,7 +72,7 @@ _gst_launch_main ()
|
|||
local var
|
||||
var="${COMP_WORDS[i]}"
|
||||
|
||||
if [[ "$var" == "--"* ]]
|
||||
if [[ "$var" == "-"* ]]
|
||||
then
|
||||
i=$(($i+1))
|
||||
continue
|
||||
|
@ -105,7 +103,7 @@ _gst_launch_main ()
|
|||
|
||||
function_exists=$?
|
||||
|
||||
if [[ "$cur" == "--"* ]]; then
|
||||
if [[ "$cur" == "-"* ]]; then
|
||||
_gst_launch_all_arguments
|
||||
elif [ $function_exists -eq 0 ]
|
||||
then
|
1
data/bash-completion/helpers/.gitignore
vendored
Normal file
1
data/bash-completion/helpers/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
gst
|
|
@ -18,17 +18,39 @@
|
|||
# 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 -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
|
||||
COMPREPLY=( $(compgen -W "$(gst-launch-1.0 --help-all | grep -oh '[[:graph:]]*--[[:graph:]]*' | cut -d'=' -f1)" -- $cur) )
|
||||
_gst_all_arguments $__app
|
||||
else
|
||||
COMPREPLY=("$cur")
|
||||
fi
|
2
libs/gst/helpers/.gitignore
vendored
2
libs/gst/helpers/.gitignore
vendored
|
@ -1,4 +1,4 @@
|
|||
gst-plugin-scanner
|
||||
gst-completion-helper-?.?*
|
||||
gst-completion-helper
|
||||
gst-ptp-helper
|
||||
*.o
|
||||
|
|
|
@ -1,14 +1,3 @@
|
|||
if ENABLE_BASH_COMPLETION
|
||||
bin_PROGRAMS = gst-completion-helper-@GST_API_VERSION@
|
||||
|
||||
gst_completion_helper_@GST_API_VERSION@_SOURCES = gst-completion-helper.c
|
||||
gst_completion_helper_@GST_API_VERSION@_CFLAGS = $(GST_OBJ_CFLAGS)
|
||||
gst_completion_helper_@GST_API_VERSION@_LDADD = $(GST_OBJ_LIBS)
|
||||
|
||||
bashhelpersdir = $(BASH_HELPERS_DIR)
|
||||
dist_bashhelpers_DATA = gst
|
||||
endif
|
||||
|
||||
helpers_PROGRAMS = gst-plugin-scanner
|
||||
helpersdir=$(libexecdir)/gstreamer-$(GST_API_VERSION)
|
||||
|
||||
|
@ -16,6 +5,13 @@ gst_plugin_scanner_SOURCES = gst-plugin-scanner.c
|
|||
gst_plugin_scanner_CFLAGS = $(GST_OBJ_CFLAGS)
|
||||
gst_plugin_scanner_LDADD = $(GST_OBJ_LIBS)
|
||||
|
||||
if ENABLE_BASH_COMPLETION
|
||||
helpers_PROGRAMS += gst-completion-helper
|
||||
gst_completion_helper_SOURCES = gst-completion-helper.c
|
||||
gst_completion_helper_CFLAGS = $(GST_OBJ_CFLAGS)
|
||||
gst_completion_helper_LDADD = $(GST_OBJ_LIBS)
|
||||
endif
|
||||
|
||||
if HAVE_PTP
|
||||
helpers_PROGRAMS += gst-ptp-helper
|
||||
gst_ptp_helper_SOURCES = gst-ptp-helper.c
|
||||
|
@ -23,18 +19,6 @@ gst_ptp_helper_CFLAGS = $(GST_OBJ_CFLAGS) $(GIO_CFLAGS)
|
|||
gst_ptp_helper_LDADD = $(GST_OBJ_LIBS) $(GIO_LIBS) $(CAP_LIBS)
|
||||
endif
|
||||
|
||||
if ENABLE_BASH_COMPLETION
|
||||
install-exec-hook:
|
||||
$(MKDIR_P) $(DESTDIR)$(BASH_HELPERS_DIR) && \
|
||||
cd $(DESTDIR)$(bindir) && \
|
||||
$(INSTALL) `echo "gst-completion-helper-" | sed '$(transform)'`@GST_API_VERSION@$(EXEEXT) \
|
||||
$(DESTDIR)$(BASH_HELPERS_DIR)/gst-completion-helper-@GST_API_VERSION@$(EXEEXT) && \
|
||||
rm `echo "gst-completion-helper-" | sed '$(transform)'`@GST_API_VERSION@$(EXEEXT)
|
||||
|
||||
uninstall-hook:
|
||||
rm -f $(DESTDIR)$(BASH_HELPERS_DIR)/gst-completion-helper-@GST_API_VERSION@$(EXEEXT)
|
||||
endif
|
||||
|
||||
install-data-hook:
|
||||
if HAVE_PTP
|
||||
if HAVE_PTP_HELPER_SETUID
|
||||
|
|
|
@ -7,7 +7,7 @@ includedir=@abs_top_builddir@
|
|||
toolsdir=@abs_top_builddir@/tools
|
||||
pluginsdir=@abs_top_builddir@
|
||||
girdir=@abs_top_builddir@/gst
|
||||
completionsdir=@abs_top_builddir@/data/completions
|
||||
bashhelpersdir=@abs_top_builddir@/data/bash-completion/helpers
|
||||
helpersdir=@abs_top_builddir@/libs/gst/helpers
|
||||
typelibdir=@abs_top_builddir@/gst
|
||||
|
||||
|
|
|
@ -7,8 +7,6 @@ pluginsdir=@libdir@/gstreamer-@GST_API_VERSION@
|
|||
datarootdir=${prefix}/share
|
||||
datadir=${datarootdir}
|
||||
girdir=${datadir}/gir-1.0
|
||||
completionsdir=@BASH_COMPLETION_DIR@
|
||||
helpersdir=@BASH_HELPERS_DIR@
|
||||
typelibdir=${libdir}/girepository-1.0
|
||||
|
||||
Name: GStreamer
|
||||
|
|
Loading…
Reference in a new issue