mirror of
https://github.com/ivuorinen/dotfiles.git
synced 2026-01-31 00:46:37 +00:00
54 lines
1.4 KiB
Bash
Executable File
54 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Simple script to output a solid line in the terminal
|
|
# Useful for marking the end of a task in your bash log
|
|
# Inspired by @LuRsT's script of the same name
|
|
# Can be called directly, or source'd in *rc file
|
|
#
|
|
# Licensed under MIT, (C) Alicia Sykes 2022
|
|
# See: https://github.com/Lissy93/dotfiles
|
|
#
|
|
# Modified by Ismo Vuorinen <https://github.com/ivuorinen> 2023
|
|
|
|
# Determine width of terminal
|
|
hr_col_count="$(tput cols)"
|
|
if [ -z "${hr_col_count+set}" ] || [ "$hr_col_count" -lt 1 ]; then
|
|
hr_col_count="${COLUMNS:-80}"
|
|
fi
|
|
|
|
# Colors
|
|
CLR_RED="\033[1;31m"
|
|
hr_color="${hr_color:=$CLR_RED}"
|
|
hr_reset="\033[0m"
|
|
|
|
# Prints the HR line
|
|
hr_draw_char() {
|
|
local CHAR="$1"
|
|
local LINE=''
|
|
LINE=$(printf "%*s" "$((hr_col_count - 2))")
|
|
LINE="${LINE// /${CHAR}}"
|
|
echo -e "◀${hr_color}${LINE:0:${hr_col_count}}${hr_reset}▶"
|
|
}
|
|
|
|
# Passes param and calls hr()
|
|
hr() {
|
|
for WORD in "${@:--}"; do
|
|
hr_draw_char "$WORD"
|
|
done
|
|
}
|
|
|
|
# Determine if file is being run directly or sourced
|
|
(
|
|
[[ -n $ZSH_EVAL_CONTEXT && $ZSH_EVAL_CONTEXT =~ :file$ ]] \
|
|
|| [[ -n $KSH_VERSION && $(cd "$(dirname -- "$0")" \
|
|
&& printf '%s' "${PWD%/}/")$(basename -- "$0") != "${.sh.file}" ]] \
|
|
|| [[ -n $BASH_VERSION ]] && (return 0 2>/dev/null)
|
|
) && sourced=1 || sourced=0
|
|
|
|
# Either instantiate immediately, or set alias for later
|
|
if [ "$sourced" -eq 0 ]; then
|
|
[ "$0" == "${BASH_SOURCE[0]}" ] && hr "$@"
|
|
else
|
|
export alias hr='hr'
|
|
fi
|
|
|