Last active
October 24, 2025 23:34
-
-
Save disouzam/a18572104c5bc69f43fa9d414ec280a3 to your computer and use it in GitHub Desktop.
Conditional loading of nvm in bash
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| export NVM_DIR="$HOME/.nvm" | |
| # Timing functionality provided by this Unix Stack Exchange answer: | |
| # https://unix.stackexchange.com/questions/52313/how-to-get-execution-time-of-a-script-effectively/52347#52347 | |
| function load_nvm() { | |
| start=`date +%s` | |
| echo 'Loading nvm...' | |
| [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" | |
| echo 'nvm loaded.' | |
| end=`date +%s` | |
| runtime=$((end-start)) | |
| echo "nvm load time: $runtime seconds" | |
| echo "" | |
| } | |
| function load_nvm_bash_completion() { | |
| start=`date +%s` | |
| echo 'Loading nvm bash_completion...' | |
| [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" | |
| echo 'nvm bash_completion loaded.' | |
| end=`date +%s` | |
| runtime=$((end-start)) | |
| echo "nvm bash_completion load time: $runtime seconds" | |
| } | |
| # Selectively loading of nvm that takes more than 10 seconds | |
| # The default behavior is to not load nvm | |
| read -n 1 -t 2 -p "Load nvm? (Y/N)" load_nvm_user_option | |
| load_nvm_user_option="$(echo "$load_nvm_user_option" | tr '[:upper:]' '[:lower:]')" | |
| if [[ "$load_nvm_user_option" =~ ^[YyNn]+$ && "$load_nvm_user_option" == "y" ]]; then | |
| echo -e "\nnvm utility will be loaded soon...\n" | |
| # [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm | |
| load_nvm | |
| # [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion | |
| load_nvm_bash_completion | |
| else | |
| echo -e "\nnvm will not be loaded!" | |
| fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment

nvm not loaded: