Here is a simpler patch that doesn't recurse subdirectories.
--- a/skel.bashrc 2015-01-28 11:34:29.000000000 -0500
+++ b/skel.bashrc 2019-10-16 08:12:02.000000000 -0400
@@ -111,3 +111,16 @@
. /etc/bash_completion
fi
fi
+
+# include config files
+if [ -d "${XDG_CONFIG_HOME:-"${HOME}/.config"}/bashrc.d" ]; then
+ for config in ${XDG_CONFIG_HOME:-"${HOME}/.config"}/bashrc.d/* ; do
+ [ -x "$config" ] || continue
+ . $config
+ done
+elif [ -d "${HOME}/.bashrc.d" ]; then
+ for config in ${HOME}/.bashrc.d/* ; do
+ [ -x "$config" ] || continue
+ . $config
+ done
+fi
Another approach would be to use `ucf` to share `/etc/skel/.bashrc` with
a [bash-bashrc.d](https://github.com/LucidOne/bash-bashrc.d) package.
Other applications that want to modify a users `.bashrc` include
`byobu`, `autojump`, and `direnv`. This should approach will prevent
these applications from having to parse `~/.bashrc` to enable or disable
functionality.
Thanks!