summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Dufresne <nicolas.dufresne@collabora.com>2017-04-04 17:42:50 (GMT)
committerNicolas Dufresne <nicolas.dufresne@collabora.com>2017-04-04 18:46:48 (GMT)
commitbae1fe254a0f730a82cd14dfd3deab06c753a8c7 (patch)
treea507fa152f6d9ec3380b8049042786877326bfd4
parentc3613658909df193e42a71cf6b5f3fcb6d51d2e0 (diff)
downloadgstreamer-bae1fe254a0f730a82cd14dfd3deab06c753a8c7.tar.gz
gstreamer-bae1fe254a0f730a82cd14dfd3deab06c753a8c7.tar.xz
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).
-rw-r--r--configure.ac20
-rw-r--r--data/Makefile.am5
-rw-r--r--data/bash-completion/completions/gst-inspect-1.0 (renamed from data/completions/gst-inspect-1.0)13
-rw-r--r--data/bash-completion/completions/gst-launch-1.0 (renamed from data/completions/gst-launch-1.0)14
-rw-r--r--data/bash-completion/helpers/.gitignore1
-rw-r--r--data/bash-completion/helpers/gst.in (renamed from libs/gst/helpers/gst)24
-rw-r--r--libs/gst/helpers/.gitignore2
-rw-r--r--libs/gst/helpers/Makefile.am30
-rw-r--r--pkgconfig/gstreamer-uninstalled.pc.in2
-rw-r--r--pkgconfig/gstreamer.pc.in2
10 files changed, 64 insertions, 49 deletions
diff --git a/configure.ac b/configure.ac
index 34a7979..47401f9 100644
--- a/configure.ac
+++ b/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
diff --git a/data/Makefile.am b/data/Makefile.am
index 7098492..16214fc 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -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
diff --git a/data/completions/gst-inspect-1.0 b/data/bash-completion/completions/gst-inspect-1.0
index 980e140..667e503 100644
--- a/data/completions/gst-inspect-1.0
+++ b/data/bash-completion/completions/gst-inspect-1.0
@@ -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
diff --git a/data/completions/gst-launch-1.0 b/data/bash-completion/completions/gst-launch-1.0
index 941cf84..80ad34c 100644
--- a/data/completions/gst-launch-1.0
+++ b/data/bash-completion/completions/gst-launch-1.0
@@ -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
diff --git a/data/bash-completion/helpers/.gitignore b/data/bash-completion/helpers/.gitignore
new file mode 100644
index 0000000..446b11b
--- /dev/null
+++ b/data/bash-completion/helpers/.gitignore
@@ -0,0 +1 @@
+gst
diff --git a/libs/gst/helpers/gst b/data/bash-completion/helpers/gst.in
index bd34abf..0acca06 100644
--- a/libs/gst/helpers/gst
+++ b/data/bash-completion/helpers/gst.in
@@ -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
diff --git a/libs/gst/helpers/.gitignore b/libs/gst/helpers/.gitignore
index b6c1ed6..2a86569 100644
--- a/libs/gst/helpers/.gitignore
+++ b/libs/gst/helpers/.gitignore
@@ -1,4 +1,4 @@
gst-plugin-scanner
-gst-completion-helper-?.?*
+gst-completion-helper
gst-ptp-helper
*.o
diff --git a/libs/gst/helpers/Makefile.am b/libs/gst/helpers/Makefile.am
index 0067779..66b19ca 100644
--- a/libs/gst/helpers/Makefile.am
+++ b/libs/gst/helpers/Makefile.am
@@ -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
diff --git a/pkgconfig/gstreamer-uninstalled.pc.in b/pkgconfig/gstreamer-uninstalled.pc.in
index 8f69dd5..b8dcdf8 100644
--- a/pkgconfig/gstreamer-uninstalled.pc.in
+++ b/pkgconfig/gstreamer-uninstalled.pc.in
@@ -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
diff --git a/pkgconfig/gstreamer.pc.in b/pkgconfig/gstreamer.pc.in
index 78b8aa9..b949d6c 100644
--- a/pkgconfig/gstreamer.pc.in
+++ b/pkgconfig/gstreamer.pc.in
@@ -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