From 202f4bad03fca168e12da32e28290abf799b075e Mon Sep 17 00:00:00 2001 From: Tony Miller Date: Sun, 7 Sep 2025 23:50:04 +1000 Subject: [PATCH] Migrate from NVM to FNM --- .config/Brewfile | 2 +- .local/bin/node | 9 --- .local/bin/npm | 9 --- .local/bin/npx | 9 --- .local/bin/yarn | 10 ---- .zshrc | 149 +++++++++++++++++++++++------------------------ 6 files changed, 73 insertions(+), 115 deletions(-) delete mode 100755 .local/bin/node delete mode 100755 .local/bin/npm delete mode 100755 .local/bin/npx delete mode 100755 .local/bin/yarn diff --git a/.config/Brewfile b/.config/Brewfile index 37efeba..ba58488 100644 --- a/.config/Brewfile +++ b/.config/Brewfile @@ -26,7 +26,7 @@ brew "thefuck" brew "trash", link: true brew "wget" brew "yt-dlp" -brew "nvm" +brew "fnm" brew "go" cask "alfred" diff --git a/.local/bin/node b/.local/bin/node deleted file mode 100755 index 583aed9..0000000 --- a/.local/bin/node +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env sh -# NVM lazy loading wrapper for node - -if ! command -v nvm >/dev/null 2>&1; then - [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" - [ -s "$NVM_DIR/etc/bash_completion.d/nvm" ] && \. "$NVM_DIR/etc/bash_completion.d/nvm" -fi - -exec node "$@" diff --git a/.local/bin/npm b/.local/bin/npm deleted file mode 100755 index e86aafa..0000000 --- a/.local/bin/npm +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env sh -# NVM lazy loading wrapper for npm - -if ! command -v nvm >/dev/null 2>&1; then - [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" - [ -s "$NVM_DIR/etc/bash_completion.d/nvm" ] && \. "$NVM_DIR/etc/bash_completion.d/nvm" -fi - -exec npm "$@" diff --git a/.local/bin/npx b/.local/bin/npx deleted file mode 100755 index 7b8689c..0000000 --- a/.local/bin/npx +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env sh -# NVM lazy loading wrapper for npx - -if ! command -v nvm >/dev/null 2>&1; then - [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" - [ -s "$NVM_DIR/etc/bash_completion.d/nvm" ] && \. "$NVM_DIR/etc/bash_completion.d/nvm" -fi - -exec npx "$@" diff --git a/.local/bin/yarn b/.local/bin/yarn deleted file mode 100755 index d862293..0000000 --- a/.local/bin/yarn +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env sh -# NVM lazy loading wrapper for yarn - -if ! command -v nvm >/dev/null 2>&1; then - export NVM_DIR="$HOME/.nvm" - [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" - [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" -fi - -exec yarn "$@" diff --git a/.zshrc b/.zshrc index acc57f8..3e9607d 100644 --- a/.zshrc +++ b/.zshrc @@ -110,83 +110,6 @@ export GIT_EDITOR='bbedit --wait --resume' export TEXEDIT='bbedit --wait --resume' export LESSEDIT='bbedit --wait --resume' -### THE FUCK (lazilly) -function init_thefuck() { - unalias fuck - unset -f init_thefuck - eval $(thefuck --alias) - fuck -} - -alias fuck="init_thefuck" - -### NVM -export NVM_DIR="/opt/homebrew/opt/nvm" -load_nvm() { - unset -f nvm load_nvm 2>/dev/null || true - [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" - [ -s "$NVM_DIR/etc/bash_completion.d/nvm" ] && \. "$NVM_DIR/etc/bash_completion.d/nvm" -} -nvm() { load_nvm; nvm "$@"; } - -### DOCKER -if command -v docker &> /dev/null; then - fpath=("$HOME/.docker/completions" $fpath) -fi - -### KUBE -if command -v kubectl &> /dev/null; then - source <(kubectl completion zsh) -fi - -### GO -export GOROOT="/opt/homebrew/opt/golang/libexec" -export GOPATH="${HOME}/src/go" - -### PYTHON -function load_pyenv() { - if command -v pyenv &> /dev/null; then - eval "$(pyenv init --path)" - eval "$(pyenv init - --no-rehash)" - if which pyenv-virtualenv-init > /dev/null; then eval "$(pyenv virtualenv-init -)"; fi - pyenv virtualenvwrapper - unset -f load_pyenv - fi -} -# Only load pyenv when needed -alias pyenv='load_pyenv && pyenv' - -### RUBY -export RUBY_VERSION=3.3.0 -export GEM_HOME=$HOME/.gem -export PATH=$GEM_HOME/bin:$PATH -export PATH=$GEM_HOME/ruby/$RUBY_VERSION/bin:$PATH - -### HOOKS -autoload -U add-zsh-hook -maybe_nvm_after_cd() { - local dir - dir=$(pwd) - while [ "$dir" != "/" ]; do - if [ -f "$dir/.nvmrc" ]; then - if type load_nvm >/dev/null 2>&1; then - load_nvm - fi - nvm use 2>/dev/null || true - return - fi - dir=$(dirname "$dir") - done -} - -function git_branch_cache_clear() { - unset GIT_BRANCH_CACHE -} - -add-zsh-hook chpwd maybe_nvm_after_cd -add-zsh-hook chpwd git_branch_cache_clear - - ### PATH export PATH="${HOME}/.local/bin:/opt/homebrew/bin:/opt/homebrew/sbin:${HOME}/.cargo/bin:/opt/homebrew/opt/rustup/bin:/Applications/IntelliJ IDEA.app/Contents/MacOS:/usr/local/bin:${GOROOT}/bin:$PATH" @@ -205,6 +128,8 @@ alias rm=trash alias gst="git status" alias gwt="git worktree" alias gdf="gdifftool" +alias fuck="init_thefuck" +alias nvm="fnm" ### KEYS bindkey -s '\C-g\C-b' 'do_checkout\n' @@ -298,3 +223,73 @@ function shorten_path { export PS1='%F{cyan}[$(shorten_path)]%F{red}$(git_ps1) %F{cyan}$(prompt_text)%f' + +### THE FUCK (lazilly) +function init_thefuck() { + unalias fuck + unset -f init_thefuck + eval $(thefuck --alias) + fuck +} + +### NODE +eval "$(fnm env --use-on-cd --shell zsh)" +export COREPACK_ENABLE_DOWNLOAD_PROMPT=0 +corepack enable + +### DOCKER +if command -v docker &> /dev/null; then + fpath=("$HOME/.docker/completions" $fpath) +fi + +### KUBE +if command -v kubectl &> /dev/null; then + source <(kubectl completion zsh) +fi + +### GO +export GOROOT="/opt/homebrew/opt/golang/libexec" +export GOPATH="${HOME}/src/go" + +### PYTHON +function load_pyenv() { + if command -v pyenv &> /dev/null; then + eval "$(pyenv init --path)" + eval "$(pyenv init - --no-rehash)" + if which pyenv-virtualenv-init > /dev/null; then eval "$(pyenv virtualenv-init -)"; fi + pyenv virtualenvwrapper + unset -f load_pyenv + fi +} +# Only load pyenv when needed +alias pyenv='load_pyenv && pyenv' + +### RUBY +export RUBY_VERSION=3.3.0 +export GEM_HOME=$HOME/.gem +export PATH=$GEM_HOME/bin:$PATH +export PATH=$GEM_HOME/ruby/$RUBY_VERSION/bin:$PATH + +### HOOKS +autoload -U add-zsh-hook +maybe_nvm_after_cd() { + local dir + dir=$(pwd) + while [ "$dir" != "/" ]; do + if [ -f "$dir/.nvmrc" ]; then + if type load_nvm >/dev/null 2>&1; then + load_nvm + fi + nvm use 2>/dev/null || true + return + fi + dir=$(dirname "$dir") + done +} + +function git_branch_cache_clear() { + unset GIT_BRANCH_CACHE +} + +add-zsh-hook chpwd maybe_nvm_after_cd +add-zsh-hook chpwd git_branch_cache_clear