#!/bin/sh
load_aliases() {
    local TIMEFMT='\%J\n%mE:'
    local OLDPATH=$PATH
    # local SUDO=/bin/sudo
    PATH=$(echo "$PATH" | sed -e 's/\/mnt\/.*\?://g')
    if command -v type >/dev/null 2>&1; then
        CHECK=type
    else
        CHECK='command -v'
    fi

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

    # make a directory and cd to it
    mcd()
    {
        test -d "$1" || mkdir -p "$1" && cd "$1"
    }
    # Put wget hsts file in XDG dir
    alias wget=wget --hsts-file="$XDG_DATA_HOME/wget-hsts"

    # Utilities for managing git and docker
    alias lg='lazygit'
    alias lzd='lazydocker'

    # for static compilation of go binaries
    alias musl-go="GOBIN=$HOME/bin CGO_ENABLED=1 CC=musl-gcc go install --ldflags '-linkmode external -extldflags=-static'"

    # Replace df with duf
    if checkCommand duf; then
        alias df="duf"
    fi

    # Replace diff with delta
    if checkCommand delta; then
        alias diff="delta"
    fi

    # replaces gnu coreutils with the rust versions, cp and mv are worth
    if checkCommand coreutils; then
        alias cp="coreutils cp -g"
        alias mv="coreutils mv -g"
        alias hashsum="coreutils hashsum"
        #alias more="coreutils more"
        alias cut="coreutils cut"
        alias chmod="coreutils chmod"
        alias chown="coreutils chown"
        alias chroot="coreutils chroot"
        alias echo="coreutils echo"
        alias head="coreutils head"
        alias kill="coreutils kill"
        alias ln="coreutils ln"
        alias mkdir="coreutils mkdir"
        alias nohup="coreutils nohup"
        alias tail="coreutils tail"
    fi

    # Replace find with fd
    if checkCommand fd; then
        alias find="fd"
    fi
    if checkCommand fdfind; then
        alias find="fdfind"
    fi

    # Replace du with gdu
    if checkCommand gdu; then
        alias du="gdu"
        alias ncdu="gdu"
    fi

    # Replace watch with viddy
    if checkCommand viddy; then
        alias watch="viddy"
    fi

     # Replace cat with bat
     if checkCommand bat; then
        alias cat="bat"
     fi

    # Replace tree with broot
    if checkCommand tree; then
        alias tree="broot"
    fi

    # Replace gping with ping
    if checkCommand gping; then
        alias ping="gping"
    fi

    # replace vim with neovim (this is probably done automatically usually)
    if checkCommand nvim; then
        alias vim="nvim"
    fi
    # Replace ls with lsd, and other useful aliases
    if checkCommand lsd; then
        alias l="lsd -l"
        alias ls="lsd"
        alias la="lsd -laa"
        alias ll="lsd -la"
    else
        alias l="ls -lF -v --color=auto"
        alias ls="ls -vF --color=auto"
        alias la="ls -laF -v --color=auto"
        alias ll="ls -lhAF -v --color=auto"
    fi

    PATH=$OLDPATH
    unset OLDPATH
    if checkCommand nala; then
        alias apt="nala"
        # sudo() {
        #     if [ "$1" = "apt" ]; then
        #         shift
        #         $SUDO nala "$@"
        #     else
        #         $SUDO "$@"
        #     fi
        # }
    fi
}
load_aliases
unset -f load_aliases
