|
|
@@ -2,22 +2,27 @@
|
|
|
|
|
|
set -e
|
|
|
|
|
|
-mkdir -p "$HOME/.bashrc.d"
|
|
|
+BASHRCD="$HOME"/.bashrc.d
|
|
|
+BASHRC="$HOME/.bashrc"
|
|
|
+BASHRC_BLOCK='source "$HOME/.bashrc.d/.init.sh"'
|
|
|
|
|
|
-FILE="$HOME/.bashrc"
|
|
|
+mkdir -p "$BASHRCD"
|
|
|
|
|
|
-BLOCK='
|
|
|
-if [ -d ~/.bashrc.d ]; then
|
|
|
- for rc in ~/.bashrc.d/*; do
|
|
|
- if [ -f "$rc" ]; then
|
|
|
- . "$rc"
|
|
|
- fi
|
|
|
- done
|
|
|
-fi
|
|
|
+
|
|
|
+INIT_FILE='
|
|
|
+THIS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &>/dev/null && pwd )"
|
|
|
+
|
|
|
+# Source all the 'bashrc.d' files
|
|
|
+# NOTE: Prepending `\` to `ls` to prevent alias expansion and just use plain `ls`
|
|
|
+for BASHRC_D_FILE in $(\ls ${THIS_DIR}/*.sh); do
|
|
|
+ source "${BASHRC_D_FILE}"
|
|
|
+done
|
|
|
'
|
|
|
|
|
|
-if ! grep -Fqs ".bashrc.d" "$FILE"; then
|
|
|
- echo "$BLOCK" >> "$FILE"
|
|
|
+echo "$INIT_FILE" > "$BASHRCD"/.init.sh
|
|
|
+
|
|
|
+if ! grep -Fqs ".bashrc.d" "$BASHRC"; then
|
|
|
+ echo "$BASHRC_BLOCK" >> "$BASHRC"
|
|
|
else
|
|
|
- echo ".bashrc.d block already exists"
|
|
|
+ echo ".bashrc.d block already exists in $BASHRC"
|
|
|
fi
|