# DO NOT EDIT THIS FILE IT WILL BE OVERWRITTEN ON UPDATE # # Add portable user customizations ${CMDER_ROOT}/config/user_profile.sh, # these customizations will follow Cmder if $CMDER_ROOT is copied # to another machine. # # Add system specific users customizations to $HOME/.bashrc, these # customizations will not follow Cmder to another machine. # Source all .sh scripts in a given directory # Args: $1 - directory path containing .sh scripts to source run_profile_d() { local profile_d_scripts pushd "${1}" >/dev/null || return profile_d_scripts=$(ls *.sh 2>/dev/null) if [ -n "${profile_d_scripts}" ]; then for script in ${profile_d_scripts}; do # echo Sourcing "${1}/${script}"... . "${1}/${script}" done fi popd >/dev/null || return } # Detect and set CMDER_ROOT for bash admin sessions # Converts Windows paths to Unix paths if needed if [ -z "$CMDER_ROOT" ]; then case "$ConEmuDir" in *\\*) CMDER_ROOT=$( cd "$(cygpath -u "$ConEmuDir")/../.." && pwd );; esac else case "$CMDER_ROOT" in *\\*) CMDER_ROOT="$(cygpath -u "$CMDER_ROOT")";; esac fi # Remove any trailing '/' from CMDER_ROOT CMDER_ROOT="${CMDER_ROOT%/}" # Exit early if CMDER_ROOT is not set if [ -z "$CMDER_ROOT" ]; then echo "Warning: CMDER_ROOT is not set. Cmder integration skipped." return 2>/dev/null || exit 0 fi export CMDER_ROOT # Detect Git installation location if [ -f "/c/Program Files/Git/cmd/git.exe" ]; then GIT_INSTALL_ROOT="/c/Program Files/Git" elif [ -f "/c/Program Files(x86)/Git/cmd/git.exe" ]; then GIT_INSTALL_ROOT="/c/Program Files(x86)/Git" elif [ -f "${CMDER_ROOT}/vendor/git-for-windows/cmd/git.exe" ]; then GIT_INSTALL_ROOT="${CMDER_ROOT}/vendor/git-for-windows" fi # Add Git to PATH if not already present if [[ -n "${GIT_INSTALL_ROOT}" && ! "$PATH" =~ "${GIT_INSTALL_ROOT}/bin:" ]]; then PATH="${GIT_INSTALL_ROOT}/bin:$PATH" fi # Add Cmder directories to PATH PATH="${CMDER_ROOT}/bin:${CMDER_ROOT}/vendor/bin:$PATH:${CMDER_ROOT}" export PATH # Create profile.d directory if it doesn't exist if [ ! -d "${CMDER_ROOT}/config/profile.d" ]; then mkdir -p "${CMDER_ROOT}/config/profile.d" fi # Source all .sh scripts in profile.d directories if [ -d "${CMDER_ROOT}/config/profile.d" ]; then run_profile_d "${CMDER_ROOT}/config/profile.d" fi if [ -d "${CMDER_USER_CONFIG}/profile.d" ]; then run_profile_d "${CMDER_USER_CONFIG}/profile.d" fi # Rename legacy user-profile.sh to user_profile.sh for consistency if [ -f "$CMDER_ROOT/config/user-profile.sh" ]; then mv "$CMDER_ROOT/config/user-profile.sh" "$CMDER_ROOT/config/user_profile.sh" fi # Source user profile from CMDER_ROOT config if [ -f "${CMDER_ROOT}/config/user_profile.sh" ]; then . "${CMDER_ROOT}/config/user_profile.sh" fi # Handle CMDER_USER_CONFIG if set if [ -n "${CMDER_USER_CONFIG}" ]; then # Rename legacy user-profile.sh to user_profile.sh for consistency if [ -f "$CMDER_USER_CONFIG/user-profile.sh" ]; then mv "$CMDER_USER_CONFIG/user-profile.sh" "$CMDER_USER_CONFIG/user_profile.sh" fi export PATH="${CMDER_USER_CONFIG}/bin:$PATH" # Source user profile from CMDER_USER_CONFIG if [ -f "${CMDER_USER_CONFIG}/user_profile.sh" ]; then . "${CMDER_USER_CONFIG}/user_profile.sh" fi fi # Determine the user profile path for creation if needed if [ -n "${CMDER_USER_CONFIG}" ]; then cmder_user_profile_path="${CMDER_USER_CONFIG}/user_profile.sh" else cmder_user_profile_path="${CMDER_ROOT}/config/user_profile.sh" fi # Create user profile from default template if it doesn't exist if [ ! -f "${cmder_user_profile_path}" ] && [ -f "${CMDER_ROOT}/vendor/user_profile.sh.default" ]; then echo "Creating user startup file: ${cmder_user_profile_path}" cp "${CMDER_ROOT}/vendor/user_profile.sh.default" "${cmder_user_profile_path}" fi # Source the users .bashrc file if it exists if [ -f "${HOME}/.bashrc" ] ; then . "${HOME}/.bashrc" fi