Merge branch 'ps/install-bash-completion'

Build update to install bash (but not zsh) completion script.

* ps/install-bash-completion:
  contrib/completion: install Bash completion
This commit is contained in:
Junio C Hamano
2025-04-29 14:21:32 -07:00
2 changed files with 24 additions and 0 deletions

View File

@@ -615,6 +615,7 @@ prefix = $(HOME)
bindir = $(prefix)/bin
mandir = $(prefix)/share/man
infodir = $(prefix)/share/info
bash_completion_dir = $(prefix)/share/bash-completion/completions
gitexecdir = libexec/git-core
mergetoolsdir = $(gitexecdir)/mergetools
sharedir = $(prefix)/share
@@ -2327,6 +2328,7 @@ bindir_relative_SQ = $(subst ','\'',$(bindir_relative))
mandir_SQ = $(subst ','\'',$(mandir))
mandir_relative_SQ = $(subst ','\'',$(mandir_relative))
infodir_relative_SQ = $(subst ','\'',$(infodir_relative))
bash_completion_dir_SQ = $(subst ','\'',$(bash_completion_dir))
perllibdir_SQ = $(subst ','\'',$(perllibdir))
localedir_SQ = $(subst ','\'',$(localedir))
localedir_relative_SQ = $(subst ','\'',$(localedir_relative))
@@ -3571,6 +3573,10 @@ endif
ifneq (,$X)
$(foreach p,$(patsubst %$X,%,$(filter %$X,$(ALL_COMMANDS_TO_INSTALL) $(OTHER_PROGRAMS))), test '$(DESTDIR_SQ)$(gitexec_instdir_SQ)/$p' -ef '$(DESTDIR_SQ)$(gitexec_instdir_SQ)/$p$X' || $(RM) '$(DESTDIR_SQ)$(gitexec_instdir_SQ)/$p';)
endif
ifndef NO_BASH_COMPLETION
$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(bash_completion_dir_SQ)' && \
$(INSTALL) -m 644 contrib/completion/git-completion.bash '$(DESTDIR_SQ)$(bash_completion_dir_SQ)/git'
endif
bindir=$$(cd '$(DESTDIR_SQ)$(bindir_SQ)' && pwd) && \
execdir=$$(cd '$(DESTDIR_SQ)$(gitexec_instdir_SQ)' && pwd) && \

View File

@@ -14,3 +14,21 @@ foreach script : [
)
endif
endforeach
# We have to discern between the test dependency and the installed file. Our
# tests assume the completion scripts to have the same name as the in-tree
# files, but the installed filenames need to match the executable's basename.
if meson.version().version_compare('>=1.3.0')
fs.copyfile('git-completion.bash', 'git',
install: true,
install_dir: get_option('datadir') / 'bash-completion/completions',
)
else
configure_file(
input: 'git-completion.bash',
output: 'git',
copy: true,
install: true,
install_dir: get_option('datadir') / 'bash-completion/completions',
)
endif