Comment 12 for bug 1372286

Revision history for this message
Peter Cordes (peter-cordes) wrote :

> Sorry for not getting back earlier.

No worries. Glad you got your systems sorted.

Not closing this bug, because your problem wasn't this bug after all.. >.< I still want to leave this bug here for the purpose I editted the OP to.

> Nonetheless I'd like to know if there is way to detect if bash_completion is already sourced other than checking the BASH_COMPLETION variable.

Ubuntu 14.04 and git HEAD (of bash-completion) both set BASH_COMPLETION_COMPAT_DIR as a read-only shell variable.
The problematically-located /etc/profile.d/bash_completion.sh checks that. (problematic because bash_completion needs to be sourced for every shell, not just login shells.)

Until COMPAT_DIR support goes away (the /etc/bash_completion.d/ files that are sourced at startup, instead of dynamically when needed), this will be fairly foolproof, unless it was introduced too recently to be present on your old systems.

Fairly completely foolproof would be to check if there is a completion loaded for ls.

if ! complete -p ls &> /dev/null;
  source something
fi