From b670aaf1ad5ed2531079a7992b6feb87c0b3b9ea Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Wed, 4 Apr 2018 23:08:48 -0700 Subject: Install bash completion into new location /share/bash-completion/completions rather than /etc/bash_completion.d Signed-off-by: Alexey Neyman diff --git a/Makefile.am b/Makefile.am index 768a3c5..88ac882 100644 --- a/Makefile.am +++ b/Makefile.am @@ -6,12 +6,12 @@ include verbatim-data.mk SUBDIRS = kconfig bin_SCRIPTS = ct-ng -CLEANFILES = ct-ng ct-ng.comp docs/ct-ng.1 -EXTRA_DIST = bootstrap ct-ng.in ct-ng.comp.in docs/ct-ng.1.in maintainer +CLEANFILES = ct-ng bash-completion/ct-ng docs/ct-ng.1 +EXTRA_DIST = bootstrap ct-ng.in bash-completion/ct-ng.in docs/ct-ng.1.in maintainer if INSTALL_BASH_COMPLETION -compdir = $(sysconfdir)/@BASH_COMPLETION_DIR@ -comp_SCRIPTS = ct-ng.comp +compdir = @BASH_COMPLETION_DIR@ +comp_SCRIPTS = bash-completion/ct-ng endif man1_MANS = docs/ct-ng.1 @@ -53,8 +53,8 @@ ct-ng: ct-ng.in Makefile docs/ct-ng.1: docs/ct-ng.1.in Makefile $(AM_V_GEN)$(MKDIR_P) docs && $(do_subst) < $< >$@-t && mv -f $@-t $@ -ct-ng.comp: ct-ng.comp.in Makefile - $(AM_V_GEN)$(do_subst) < $< >$@-t && mv -f $@-t $@ +bash-completion/ct-ng: bash-completion/ct-ng.in Makefile + $(AM_V_GEN)$(MKDIR_P) bash-completion && $(do_subst) < $< >$@-t && mv -f $@-t $@ dist-hook: maintainer/download-docs.sh $< $(top_distdir) $(USER_MANUAL_FILES) diff --git a/bash-completion/ct-ng.in b/bash-completion/ct-ng.in new file mode 100644 index 0000000..f38c881 --- /dev/null +++ b/bash-completion/ct-ng.in @@ -0,0 +1,36 @@ +# To be sourced + +_ct_ng () { + local cur prev samples show_samples actions steps start_steps stop_steps ct_ng_opts vars + COMPREPLY=() + cur=$(_get_cword) + prev=${COMP_WORDS[COMP_CWORD-1]} + + samples=$( "${COMP_WORDS[0]}" list-samples-short 2>/dev/null ) + show_samples=$(echo "${samples}" |sed -r -e 's/(^| )/\1show-/g;') + build_samples=$(echo "${samples}" |sed -r -e 's/(^| )/\1build-/g;') + check_samples=$(echo "${samples}" |sed -r -e 's/(^| )/\1check-/g;') + + steps=$(${COMP_WORDS[0]} list-steps 2>/dev/null |awk '$1 == "-" { print $2; }') + start_steps=$(echo "${steps}" |sed -r -e 's/($| )/\1+/;') + stop_steps=$(echo "${steps}" |sed -r -e 's/(^| )/+\1/;') + + actions='help menuconfig nconfig oldconfig saveconfig extractconfig + defconfig savedefconfig + build build-all + wiki-samples list-samples list-samples-short check-samples + list-steps + show-tuple show-all show-config + clean distclean updatetools + version' + + vars="RESTART= STOP= PREFIX= V= DEFCONFIG=" + + ct_ng_opts="${samples} ${show_samples} ${build_samples} ${check_samples} + ${steps} ${start_steps} ${stop_steps} + ${actions} ${vars}" + + COMPREPLY=($(compgen -W "${ct_ng_opts}" -- "${cur}")) + return 0 +} +complete -F _ct_ng @progname@ diff --git a/configure.ac b/configure.ac index 920e42d..c19d6ed 100644 --- a/configure.ac +++ b/configure.ac @@ -33,27 +33,19 @@ AC_ARG_ENABLE( [run ct-ng from the current directory; 'make install' unsupported])]) AC_SUBST([enable_local], [${enable_local:-no}]) -AC_ARG_WITH([bash-completion-dir], +AC_ARG_WITH([bash-completion], [AS_HELP_STRING( [--with-bash-completion], - [install bash(1) command completion for ct-ng into specified directory, - relative to sysconfdir])], + [install bash(1) command completion; can specify a path where it will be installed])], [], - [with_bash_completion_dir=bash_completion.d]) -AM_CONDITIONAL([INSTALL_BASH_COMPLETION], [test "${with_bash_completion_dir}" != "no" ]) -AC_SUBST([BASH_COMPLETION_DIR], [${with_bash_completion_dir}]) - -# FIXME: I don't know why we have this. Will remove after the 1.24 release. -AC_ARG_ENABLE( - [shared], - [AS_HELP_STRING( - [--enable-shared], - [build shared libraries (deprecated, ignored)])]) -AC_ARG_ENABLE( - [static], - [AS_HELP_STRING( - [--enable-static], - [build static libraries (deprecated, ignored)])]) + [with_bash_completion=yes]) +AS_IF([test "${with_bash_completion}" = "no"], + [BASH_COMPLETION_DIR=], + [test "${with_bash_completion}" != "yes"], + [BASH_COMPLETION_DIR="${with_bash_completion}"], + [BASH_COMPLETION_DIR='${datadir}/bash-completion/completions']) +AM_CONDITIONAL([INSTALL_BASH_COMPLETION], [test -n "${BASH_COMPLETION_DIR}"]) +AC_SUBST([BASH_COMPLETION_DIR]) # Check for --build and --host... AC_CANONICAL_BUILD diff --git a/ct-ng.comp.in b/ct-ng.comp.in deleted file mode 100644 index f38c881..0000000 --- a/ct-ng.comp.in +++ /dev/null @@ -1,36 +0,0 @@ -# To be sourced - -_ct_ng () { - local cur prev samples show_samples actions steps start_steps stop_steps ct_ng_opts vars - COMPREPLY=() - cur=$(_get_cword) - prev=${COMP_WORDS[COMP_CWORD-1]} - - samples=$( "${COMP_WORDS[0]}" list-samples-short 2>/dev/null ) - show_samples=$(echo "${samples}" |sed -r -e 's/(^| )/\1show-/g;') - build_samples=$(echo "${samples}" |sed -r -e 's/(^| )/\1build-/g;') - check_samples=$(echo "${samples}" |sed -r -e 's/(^| )/\1check-/g;') - - steps=$(${COMP_WORDS[0]} list-steps 2>/dev/null |awk '$1 == "-" { print $2; }') - start_steps=$(echo "${steps}" |sed -r -e 's/($| )/\1+/;') - stop_steps=$(echo "${steps}" |sed -r -e 's/(^| )/+\1/;') - - actions='help menuconfig nconfig oldconfig saveconfig extractconfig - defconfig savedefconfig - build build-all - wiki-samples list-samples list-samples-short check-samples - list-steps - show-tuple show-all show-config - clean distclean updatetools - version' - - vars="RESTART= STOP= PREFIX= V= DEFCONFIG=" - - ct_ng_opts="${samples} ${show_samples} ${build_samples} ${check_samples} - ${steps} ${start_steps} ${stop_steps} - ${actions} ${vars}" - - COMPREPLY=($(compgen -W "${ct_ng_opts}" -- "${cur}")) - return 0 -} -complete -F _ct_ng @progname@ -- cgit v0.10.2-6-g49f6