#!/bin/sh
# shellcheck disable=SC2142

for command in apt su ; do
	alias $command="sudo $command"
done; unset command

# Verbosity and settings that you pretty much just always are going to want.
alias \
    cp="cp -iv" \
    mv="mv -iv" \
    rm="rm -vI" \
    bc="bc -ql" \
    mkd="mkdir -pv" \
    ffmpeg="ffmpeg -hide_banner" \
    exa="exa -abghHliS" \
    duf="duf -all" \
    ls="ls -hN --color=auto --group-directories-first" \
    grep="grep --color=auto" \
    diff="diff --color=auto" \

# Colorize commands when possible.
alias \
    ls="ls -hN --color=auto --group-directories-first" \
    grep="grep --color=auto" \
    diff="diff --color=auto" \
    ccat="highlight --out-format=ansi" \
    ip="ip -color=auto"

# These common commands are just too long! Abbreviate them.
alias \
    ka="killall" \
    e="$EDITOR" \
    are="apt remove" \
    arein="apt reinstall" \
    ain="apt install" \
    aur="apt autoremove" \
    aup="apt upgrade" \
    ase="apt search" \
    ash="apt show"

# Misc.
alias \
    ll="ls -lhpAN --color=auto --group-directories-first" \
    vim="nvim" \

# Docker
alias \
    dps="docker ps --format 'table {{.Image}}\t{{.Names}}\t{{.Status}}'" \
    dpt="docker ps --format 'table {{.Names}}\t{{.Ports}}'" \
    dmn="docker ps --format 'table {{.Names}}\t{{.Mounts}}'" \
    dex="docker exec -it" \
    dlg="docker logs" \
    dsr="docker start" \
    drm="docker rm" \
    dsp="docker stop" \
    din="docker inspect" \
    dcp="docker cp" \
    dprune="yes | { docker container prune; docker volume prune; docker network prune; docker image prune; }" \
    dbash=' () { docker exec -it $1 /bin/bash }' \
    dsh=' () { docker exec -it $1 /bin/sh }' \