# ~/.aliasrc - Compatible with Bash and Zsh

# Array containing all alias definitions as strings
alias_list=(
    # General Shell Aliases
    "ll='ls -alF'"
    "ls='ls -lah --color'"
    "grep='grep --color=auto'"
    "vi='vim'"
    "lpg='cd ~/git/lucidpoint'"
    "ppg='cd ~/git/personal'"
    "downloads='cd ~/Downloads'"
    "desktop='cd ~/Desktop'"
    "docs='cd ~/Documents'"
    "pip='pip3'"
    "python='python3'"

    # PYTHON
    "ve='source venv/bin/activate'"

    # GIT
    "gaa='git add --all'"
    "gcm='git commit --all --message'"
    "glo='git log --oneline --decorate --graph --all'"
    "gl='git pull'"
    "gp='git push'"
    "gpd='git push --dry-run'"
    "gpv='git push --verbose'"
    "grb='git rebase'"
    "grv='git remote --verbose'"
    "gs='git show --pretty=short'"
    "gst='git status --short'"
    "gd='git diff'"
    "gdca='git diff --cached'"
    "gdcw='git diff --cached --word-diff'"
    "gds='git diff --staged'"
    "gdw='git diff --word-diff'"

    # SSH
    "ed='ssh errol@edesktop.sancaktar.net'"
    "fs='ssh errol@fs1.sancaktar.net'"

    # Kubernetes
    "k='kubectl'"
    # Terraform/Tofu
    "t='tofu'"
)

# Alias Functions
gc() {
    git add --all
    if [ -n "$1" ]
    then
        git commit --all --message "$1"
    else
        git commit -m update
    fi
    git push --verbose
}

for alias_def in "${alias_list[@]}"; do
    if [ -n "$BASH_VERSION" ]; then
        eval "alias $alias_def"
    elif [ -n "$ZSH_VERSION" ]; then
        alias ${alias_def}
    else
        eval "alias $alias_def"
    fi
done

unset alias_list alias_def
