# Copy this file to your non integrated *nix-like environment, # Cygwin/MSys2/Git for Windows SDK, installs '/etc/profile.d/' # folder to integrate the externally installed Unix like environment # into Cmder so it has access to settings stored in Cmder/config # folder when launched. # # The destination file extension depends on the shell you use. For example: # # bash - Copy to /etc/profile.d/cmder_exinit.sh # zsh - Copy to /etc/profile.d/cmder_exinit.zsh # Add portable user customizations ${CMDER_ROOT}/config/user-profile.sh or # add whole config scripts to ${CMDER_ROOT}/config/profile.d both will be sourced # from mthis file and be appied to the environment at startup. # # 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. # # Uncomment and edit the CMDER_ROOT line to use Cmder/config even when launched # # from outside Cmder. # CMDER_ROOT=${USERPROFILE}/cmder # This is not required if launched from Cmder. function runProfiled { unset profile_d_scripts pushd "${1}" >/dev/null if [ ! "x${ZSH_VERSION}" = "x" ]; then profile_d_scripts=$(ls *.zsh 2>/dev/null) elif [ ! "x${BASH_VERSION}" = "x" ]; then profile_d_scripts=$(ls *.sh 2>/dev/null) fi if [ ! "x${profile_d_scripts}" = "x" ] ; then for x in ${profile_d_scripts} ; do echo Sourcing "${1}/${x}"... . "${1}/${x}" done fi popd >/dev/null } # Check that we haven't already been sourced. [[ -z ${CMDER_EXINIT} ]] && CMDER_EXINIT="1" || return # We do this for bash as admin sessions since $CMDER_ROOT is not being set if [ "$CMDER_ROOT" = "" -a "$ConEmuDir" != "" ] ; then if [ -d "${ConEmuDir}../../vendor" ] ; then case "$ConEmuDir" in *\\*) CMDER_ROOT=$( cd "$(cygpath -u "$ConEmuDir")/../.." ; pwd );; esac else echo "Running in ConEmu without Cmder, skipping Cmder integration." fi elif [ "$CMDER_ROOT" != "" ] ; then case "$CMDER_ROOT" in *\\*) CMDER_ROOT="$(cygpath -u "$CMDER_ROOT")";; esac fi if [ ! "$CMDER_ROOT" = "" ] ; then # Remove any trailing '/' CMDER_ROOT=$(echo $CMDER_ROOT | sed 's:/*$::') echo "Using \"CMDER_ROOT\" at \"${CMDER_ROOT}\"." export CMDER_ROOT PATH=${CMDER_ROOT}/bin:${CMDER_ROOT}/vendor/bin:$PATH:${CMDER_ROOT} export PATH # Drop *.sh or *.zsh files into "${CMDER_ROOT}\config\profile.d" # to source them at startup. if [ ! -d "${CMDER_ROOT}/config/profile.d" ] ; then mkdir -p "${CMDER_ROOT}/config/profile.d" fi if [ -d "${CMDER_ROOT}/config/profile.d" ] ; then runProfiled "${CMDER_ROOT}/config/profile.d" fi if [ -d "${CMDER_USER_CONFIG}/profile.d" ] ; then runProfiled "${CMDER_USER_CONFIG}/profile.d" fi # Renaming to "config\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 CmderUserProfilePath="${CMDER_ROOT}/config/user_profile.sh" if [ -f "${CMDER_ROOT}/config/user_profile.sh" ] ; then . "${CMDER_ROOT}/config/user_profile.sh" fi if [ "${CMDER_USER_CONFIG}" != "" ] ; then # Renaming to "config\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 CmderUserProfilePath="${CMDER_USER_CONFIG}/user_profile.sh" if [ -f "${CMDER_USER_CONFIG}/user_profile.sh" ] ; then . "${CMDER_USER_CONFIG}/user_profile.sh" fi fi if [ ! -f "${CmderUserProfilePath}" ] ; then echo Creating user startup file: "${CmderUserProfilePath}" cat <<-eof >"${CmderUserProfilePath}" # use this file to run your own startup commands for msys2 bash' # To add a new vendor to the path, do something like: # export PATH=\${CMDER_ROOT}/vendor/whatever:\${PATH} eof fi fi