# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
    PATH="$HOME/.local/bin:$PATH"
fi

### AAA ##########################################

isMac() { uname -s | grep -q "Darwin"; }
isLinux() { uname -s | grep -q "Linux"; }
addPath() { [ -d "$1" ] && export PATH="$1:$PATH"; }
safeSource() { [ -s "$1" ] && source "$1" 2>/dev/null || true; }

export EDITOR="nano"
export NVM_DIR="$HOME/.nvm"
export GOPATH="$HOME/.go"

### MacBook section
if isMac; then
    # brew software
    if [ -d "/opt/homebrew/bin/" ]; then
        # brew itself
        eval "$(/opt/homebrew/bin/brew shellenv zsh)"
        addPath "/opt/homebrew/bin/"

        # java
        export JAVA_HOME="/Library/Java/JavaVirtualMachines/openjdk-17.jdk/Contents/Home"

        # nvm (not nvim!)
        safeSource "/opt/homebrew/opt/nvm/nvm.sh"  # This loads nvm
        safeSource "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm"  # This loads nvm bash_completion
    fi

    # jbtoolbox
    addPath "$HOME/Library/Application Support/JetBrains/Toolbox/scripts"

    # orbstack
    safeSource "$HOME/.orbstack/shell/init.zsh"
fi
### MacBook section end

### Ubuntu section
if isLinux; then
    # golang
    export PATH="$PATH:/usr/local/go/bin"

    # java
    # export JAVA_HOME="/usr/lib/jvm/java-21-openjdk-amd64"
    export JAVA_HOME="/usr/lib/jvm/java-17-openjdk-amd64"

    # nvim (not nvm!)
    [ -d "/opt/nvim/bin/" ] && export PATH="$PATH:/opt/nvim/bin/"

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

    # nvm (not nvim!)
    safeSource "$NVM_DIR/nvm.sh"  # This loads nvm
    safeSource "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

    if hash composer >/dev/null; then
        composer_home=$(composer config -g home 2>/dev/null)
        export PATH="$PATH:$composer_home/vendor/bin"
    fi

    # phpbrew
    # export PHPBREW_SET_PROMPT=1
    # export PHPBREW_RC_ENABLE=1
    # [ -f $HOME/.phpbrew/bashrc ] && source $HOME/.phpbrew/bashrc

    # The next line updates PATH for Yandex Cloud CLI.
    safeSource "$HOME/yandex-cloud/path.bash.inc"

    # The next line enables shell command completion for yc.
    safeSource "$HOME/yandex-cloud/completion.zsh.inc"

    # jbtoolbox
    if [ -d "$HOME/.local/share/JetBrains/Toolbox/scripts/" ]; then
        export PATH="$PATH:$HOME/.local/share/JetBrains/Toolbox/scripts/"
    fi
fi
### Ubuntu section end

addPath "$JAVA_HOME/bin/"

safeSource "$HOME/.profile.local"
