#! /bin/bash
# Note, I don't really use bash so this may be kinda sparse, but you may be able to copy stuff from .zshrc

# Source global definitions
if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi

checkCommand(){
    type "$1" >/dev/null 2>&1
}

# If you have zellij installed, this will auto start it
if [ -z "$ZELLIJ" ] && checkCommand zellij; then
    #export ZELLIJ_AUTO_ATTACH=true
    exec zellij
fi

# Speed up shell load on WSL
OLDPATH=$PATH
PATH=$(echo "$PATH" | sed -e 's/\/mnt\/.*\?://g')


# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
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

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth

# append to the history file, don't overwrite it
shopt -s histappend


# Shell Agnostic Env Vars
[[ -f ~/.env ]] && . ~/.env

# Load Aliases
[[ -f ~/.aliasrc ]] && . ~/.aliasrc

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=10000
HISTFILESIZE=10000
HISTFILE="${XDG_STATE_HOME}/bash/history"

# set colors if pywal is installed
if checkCommand wal  && [ -z "$SSH_TTY" ]; then
    eval 'cat ~/.cache/wal/sequences &'
fi

# Load sheldon
#if checkCommand sheldon; then
#    eval "$(sheldon -q source)";


# if ssh-agent isn't running, run it
if ! pgrep -u "$USER" '(ssh|gpg)-agent' >/dev/null; then
    if checkCommand gpg-agent; then
        gpg-agent --daemon --enable-ssh-support;
        unset SSH_AGENT_PID;
        export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-socket);
        export GPG_TTY=$(tty)
        gpg-connect-agent updatestartuptty /bye >/dev/null
    elif checkCommand ssh-agent; then
        ssh-agent > "$HOME/.ssh-agent.env";
    fi
fi
if [ ! -f "$SSH_AUTH_SOCK" ] && [ -f ~/.ssh-agent.env ]; then
    source "$HOME/.ssh-agent.env" >/dev/null
fi

# Set up mcfly if installed (lets you search through history easily with ctrl+r)
if command -v mcfly >/dev/null 2>&1; then
  eval "$(mcfly init bash)"
fi


# set up zoxide if installed (lets you jump through folders easily using the z and zi commands instead of cd)
if command -v zoxide >/dev/null 2>&1; then
  eval "$(zoxide init bash)"
fi

[[ -f "$HOME"/.config/broot/launcher/bash/br ]] && source "$HOME"/.config/broot/launcher/bash/br

if checkCommand hyfetch; then
    hyfetch -b fastfetch
fi

if checkCommand starship; then
    eval "$(starship init $0)";
else #Fallback prompt
    PS1='[\u@\h \W]\$ ';
fi
PATH=$OLDPATH
unset OLDPATH

source /home/mira/.config/broot/launcher/bash/br
