#!/bin/bash

# shellcheck source=.functions.sh
. ~/.config/aliases/.functions.sh

### General aliases
# ll pimped with eza
alias ll="eza -lag --icons=always --group-directories-first --smart-group --time-style='+%d %b %y %H:%M'"
# du all items in folder, human readable
alias dh='du -chs *'
# yazi file manager
alias y='yazi'
# preview/find file using fzf and bat
alias pf='fzf --preview "bat --color=always {}"'
# cd to dir using fuzzy finder (fzf)
alias cdf='cd "$(find . -type d | fzf)"'
# (executed from / or /home might be slow)
next_line
# cd to file's directory
alias cdtf=cd_to_file
# mkdir & cd to it
alias mkcd=mkdir_and_cd
# grep shorthand
alias g='grep'
# python interpreter/REPL
alias py='python3'
# source ~/.config/aliases/.aliases
alias sa='source ~/.config/aliases/.aliases'
# edit aliases files ('ea h' for help)
alias ea=edit_aliases
# pack 'cwd' to tar.gz in parent with 'cwd' name
alias twd='tar -czf "../$(basename "$PWD").tar.gz" .'
# print alias description
alias h='display_alias_descriptions'

# LOCAL/CUSTOM bash aliases
# You can create custom local aliases in .local_aliases
# or .custom_aliases file for some temporary aliases
if [ -f ~/.config/aliases/.local_aliases ]; then
  . ~/.config/aliases/.local_aliases
fi
if [ -f ~/.config/aliases/.custom_aliases ]; then
  . ~/.config/aliases/.custom_aliases
fi
# source git aliases
if [ -f ~/.config/aliases/.git_aliases ]; then
  . ~/.config/aliases/.git_aliases
fi
# source docker aliases
if [ -f ~/.config/aliases/.docker_aliases ]; then
  . ~/.config/aliases/.docker_aliases
fi
