# Bash Functions mkcd() { mkdir -p -- "$1" && cd -P -- "$1" } # determine size of a file or total size of a directory function fs() { if du -b /dev/null > /dev/null 2>&1; then local arg=-sbh; else local arg=-sh; fi if [[ -n "$@" ]]; then du $arg -- "$@"; else du $arg .[^.]* ./*; fi; } # use Git’s colored diff when available hash git &>/dev/null; if [ $? -eq 0 ]; then function diff() { git diff --no-index --color-words "$@"; } fi; ## system administration ### service files sysedit() { local svc="$1" sudo systemctl edit --full "$svc" read -p "Reload + restart $svc? [y/N]: " ans if [[ "$ans" == "y" ]]; then sudo systemctl daemon-reload sudo systemctl restart "$svc" fi } sysadd() { local svc="$1" sudo systemctl edit "$svc" read -p "Reload + restart $svc? [y/N]: " ans if [[ "$ans" == "y" ]]; then sudo systemctl daemon-reload sudo systemctl restart "$svc" fi } ## bash script helpers is_true() { case "${1,,}" in 1|true|yes|y|on) return 0 ;; *) return 1 ;; esac }