#!/bin/env bash set -e BASHRCD="$HOME"/.bashrc.d BASHRC="$HOME/.bashrc" BASHRC_BLOCK='source "$HOME/.bashrc.d/.init.sh"' mkdir -p "$BASHRCD" 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 ' echo "$INIT_FILE" > "$BASHRCD"/.init.sh if ! grep -Fqs ".bashrc.d" "$BASHRC"; then echo "$BASHRC_BLOCK" >> "$BASHRC" else echo ".bashrc.d block already exists in $BASHRC" fi