Simplify bash completion
Bash reads all the completion files at start, so we don't need additional symlinks. Register completions for all the pip3 symliks at once.
This commit is contained in:
parent
9a8a1ef98e
commit
a0ac853b8c
@ -10,12 +10,7 @@
|
||||
%global pypa_theme_commit_hash d2e63fbfc62af3b7050f619b2f5bb8658985b931
|
||||
%endif
|
||||
|
||||
# Note that with disabled python3, bashcomp2 will be disabled as well because
|
||||
# bashcompdir will point to a different path than with python3 enabled.
|
||||
%global bashcompdir %(b=$(pkg-config --variable=completionsdir bash-completion 2>/dev/null); echo ${b:-%{_sysconfdir}/bash_completion.d})
|
||||
%if "%{bashcompdir}" != "%{_sysconfdir}/bash_completion.d"
|
||||
%global bashcomp2 1
|
||||
%endif
|
||||
%global bashcompdir %(pkg-config --variable=completionsdir bash-completion 2>/dev/null)
|
||||
|
||||
Name: python-%{srcname}
|
||||
# When updating, update the bundled libraries versions bellow!
|
||||
@ -306,22 +301,12 @@ done
|
||||
mkdir -p %{buildroot}%{bashcompdir}
|
||||
PYTHONPATH=%{buildroot}%{python3_sitelib} \
|
||||
%{buildroot}%{_bindir}/pip completion --bash \
|
||||
> %{buildroot}%{bashcompdir}/pip
|
||||
pips3=pip
|
||||
for pip in %{buildroot}%{_bindir}/pip*; do
|
||||
pip=$(basename $pip)
|
||||
case $pip in
|
||||
pip3*)
|
||||
pips3="$pips3 $pip"
|
||||
%if 0%{?bashcomp2}
|
||||
ln -s pip %{buildroot}%{bashcompdir}/$pip
|
||||
%endif
|
||||
;;
|
||||
esac
|
||||
done
|
||||
sed -i -e "s/^\\(complete.*\\) pip\$/\\1 $pips3/" \
|
||||
> %{buildroot}%{bashcompdir}/pip3
|
||||
|
||||
# Make bash completion apply to all the 5 symlinks we install
|
||||
sed -i -e "s/^\\(complete.*\\) pip\$/\\1 pip pip{,-}{3,%{python3_version}}/" \
|
||||
-e s/_pip_completion/_pip3_completion/ \
|
||||
%{buildroot}%{bashcompdir}/pip
|
||||
%{buildroot}%{bashcompdir}/pip3
|
||||
|
||||
|
||||
# Provide symlinks to executables to comply with Fedora guidelines for Python
|
||||
@ -373,11 +358,7 @@ ln -sf %{buildroot}%{_bindir}/pip3 _bin/pip
|
||||
%{_bindir}/pip-%{python3_version}
|
||||
%{python3_sitelib}/pip*
|
||||
%dir %{bashcompdir}
|
||||
%{bashcompdir}/pip
|
||||
%{bashcompdir}/pip3*
|
||||
%if 0%{?bashcomp2}
|
||||
%dir %(dirname %{bashcompdir})
|
||||
%endif
|
||||
%{bashcompdir}/pip3
|
||||
|
||||
%if %{with doc}
|
||||
%files doc
|
||||
|
Loading…
Reference in New Issue
Block a user