1+ # Helper function for warnings
2+ # -----------------------------------------------------------------
3+ _dots_warn () {
4+ echo " WARNING: $* " >&2
5+ }
6+
17# xdg data & config
28# -----------------------------------------------------------------
39export XDG_DATA_HOME=${XDG_DATA_HOME:- " $HOME /.local/share" }
@@ -29,8 +35,14 @@ if [ -z "$NVM_DIR" ]; then
2935fi
3036
3137_dots_load_nvm () {
32- [ -s " $NVM_DIR /nvm.sh" ] && \. " $NVM_DIR /nvm.sh" --no-use
33- [ -s " $NVM_DIR /bash_completion" ] && \. " $NVM_DIR /bash_completion"
38+ if [ -s " $NVM_DIR /nvm.sh" ]; then
39+ \. " $NVM_DIR /nvm.sh" --no-use || _dots_warn " Failed to load nvm.sh"
40+ else
41+ _dots_warn " nvm.sh not found at $NVM_DIR /nvm.sh"
42+ fi
43+ if [ -s " $NVM_DIR /bash_completion" ]; then
44+ \. " $NVM_DIR /bash_completion" || _dots_warn " Failed to load nvm bash_completion"
45+ fi
3446}
3547_dots_load_nvm
3648
@@ -41,6 +53,19 @@ if [ -f "$node_alias" ]; then
4153 if [[ " :$PATH :" != * " :$node_bin_path :" * ]]; then
4254 export PATH=" $node_bin_path :$PATH "
4355 fi
56+
57+ # Check Node.js version
58+ if command -v node & > /dev/null; then
59+ current_node_version=$( node --version 2> /dev/null)
60+ expected_node_version=$( cat " $node_alias " 2> /dev/null)
61+ if [ -n " $expected_node_version " ] && [ " $current_node_version " != " v$expected_node_version " ]; then
62+ _dots_warn " Node.js version mismatch: current=$current_node_version , expected=v$expected_node_version "
63+ fi
64+ else
65+ _dots_warn " Node.js not available in PATH"
66+ fi
67+ else
68+ _dots_warn " Node.js alias file not found: $node_alias "
4469fi
4570unset node_alias VERSION node_bin_path
4671
@@ -51,10 +76,31 @@ if [[ ":$PATH:" != *":$PYENV_ROOT/bin:"* ]]; then
5176 export PATH=" $PYENV_ROOT /bin:$PATH "
5277fi
5378_dots_load_pyenv () {
54- [ -x $( command -v pyenv) ] && eval " $( pyenv init --path) "
79+ if command -v pyenv & > /dev/null; then
80+ eval " $( pyenv init --path) " || _dots_warn " Failed to initialize pyenv"
81+ else
82+ _dots_warn " pyenv not found in PATH"
83+ fi
5584}
5685_dots_load_pyenv
5786
87+ # Check Python version
88+ if command -v python & > /dev/null; then
89+ current_python_version=$( python --version 2>&1 | awk ' {print $2}' )
90+ expected_python_version=" 3.13.7"
91+ if [ -n " $current_python_version " ] && [ " $current_python_version " != " $expected_python_version " ]; then
92+ _dots_warn " Python version mismatch: current=$current_python_version , expected=$expected_python_version "
93+ fi
94+ elif command -v python3 & > /dev/null; then
95+ current_python_version=$( python3 --version 2>&1 | awk ' {print $2}' )
96+ expected_python_version=" 3.13.7"
97+ if [ -n " $current_python_version " ] && [ " $current_python_version " != " $expected_python_version " ]; then
98+ _dots_warn " Python version mismatch: current=$current_python_version , expected=$expected_python_version "
99+ fi
100+ else
101+ _dots_warn " Python not available in PATH"
102+ fi
103+
58104export POETRY_ROOT=${POETRY_ROOT:- " $HOME /.poetry" }
59105if [[ " :$PATH :" != * " :$POETRY_ROOT /bin:" * ]]; then
60106 export PATH=" $POETRY_ROOT /bin:$PATH "
70116# -----------------------------------------------------------------------------
71117_dots_load_brew () {
72118 export HOMEBREW_NO_ANALYTICS=1
73- [ -x " /opt/homebrew/bin/brew" ] && eval " $( /opt/homebrew/bin/brew shellenv) "
119+ if [ -x " /opt/homebrew/bin/brew" ]; then
120+ eval " $( /opt/homebrew/bin/brew shellenv) " || _dots_warn " Failed to initialize homebrew"
121+ fi
74122}
75123_dots_load_brew
0 commit comments