# ~/.bashrc — interactive shell config
# not interactive? bail out
case $- in *i*) ;; *) return ;; esac

# ─── system defaults ──────────────────────────────────────────────────────────
[ -f /etc/bash.bashrc ] && source /etc/bash.bashrc

# ─── history ──────────────────────────────────────────────────────────────────
HISTCONTROL=ignoreboth
HISTSIZE=10000
HISTFILESIZE=20000
HISTIGNORE="clear:bg:fg:cd:cd -:cd ..:exit:date:ls:l:ll:* --help"
shopt -s histappend
shopt -s checkwinsize

# ─── prompt ───────────────────────────────────────────────────────────────────
# green user, blue path — simple and readable
PS1='\[\e[1;32m\]\u\[\e[0m\]:\[\e[1;34m\]\w\[\e[0m\]\$ '

# ─── colors ───────────────────────────────────────────────────────────────────
if [ -x /usr/bin/dircolors ]; then
    eval "$(dircolors -b ~/.dircolors 2>/dev/null || dircolors -b)"
fi

# ─── aliases ──────────────────────────────────────────────────────────────────
[ -f ~/.bash_aliases ] && source ~/.bash_aliases

# ─── completions ──────────────────────────────────────────────────────────────
if ! shopt -oq posix; then
    if [ -f /usr/share/bash-completion/bash_completion ]; then
        . /usr/share/bash-completion/bash_completion
    elif [ -f /etc/bash_completion ]; then
        . /etc/bash_completion
    fi
fi

# ─── fzf ──────────────────────────────────────────────────────────────────────
[ -f ~/.fzf.bash ] && source ~/.fzf.bash
export FZF_DEFAULT_OPTS="--height 40% --layout=reverse --border"

# ─── less ─────────────────────────────────────────────────────────────────────
export LESS="-R --use-color"
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

# ─── rust / cargo ─────────────────────────────────────────────────────────────
[ -f "$HOME/.cargo/env" ] && . "$HOME/.cargo/env"

# ─── node / nvm ───────────────────────────────────────────────────────────────
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh"           ] && . "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion"  ] && . "$NVM_DIR/bash_completion"

# ─── pnpm ─────────────────────────────────────────────────────────────────────
export PNPM_HOME="$HOME/.local/share/pnpm"
case ":$PATH:" in
    *":$PNPM_HOME:"*) ;;
    *) export PATH="$PNPM_HOME:$PATH" ;;
esac

# ─── deno ─────────────────────────────────────────────────────────────────────
[ -f "$HOME/.deno/env" ] && . "$HOME/.deno/env"

# ─── java ─────────────────────────────────────────────────────────────────────
export JAVA_HOME="$HOME/.jdks/corretto-23.0.2"
export PATH="$JAVA_HOME/bin:$PATH"

# ─── jbang ────────────────────────────────────────────────────────────────────
export PATH="$HOME/.jbang/bin:$PATH"
alias j!=jbang

# ─── local bin ────────────────────────────────────────────────────────────────
[ -d "$HOME/.local/bin" ] && export PATH="$HOME/.local/bin:$PATH"
[ -d "$HOME/bin"        ] && export PATH="$HOME/bin:$PATH"
