#!/usr/bin/env bash set -e set -o nounset set -o pipefail SCRIPTS=${SCRIPTS:-$HOME/.local/scripts} THIS_FILE=${BASH_SOURCE[0]} LOG_LABEL=$(basename "$THIS_FILE") THIS=${THIS:-$LOG_LABEL} LOG_DIR=${LOG_DIR:=""} LOG_FILE=${LOG_FILE:-"$LOG_LABEL.log"} FZF_DEFAULT_OPTS=${FZF_DEFAULT_OPTS:-""} # Logging utility function, use in place of echo. log() { logging log --source "$THIS_FILE" "$@" } footer() { cat <<'EOF' __ / / ___ ___ ____ / /__/ _ \/ _ `(_-< /____/\___/\_, /___/ /___/ EOF } ################################################################################ # MAIN ################################################################################ # Setup logging file and label. source "$SCRIPTS/hypr/logging" setup-logging "$LOG_FILE" "$LOG_LABEL" if [[ -z $LOG_DIR ]]; then echo "Log directory not setup properly!" && exit 1 fi # Setup colors before calling fzf. [[ -z $FZF_DEFAULT_OPTS ]] && [[ -f $SCRIPTS/catppuccin-colors ]] && source $SCRIPTS/catppuccin-colors sel=$( /bin/ls $LOG_DIR/*.log | sed 's#.*/##; s/\..*$//' | # cleans to only show file name, excluding the path and '.log' fzf --style=full \ --footer="$(footer)" \ --preview-label='[ Logs ]' \ --preview='echo ""; bat $LOG_DIR/{}.log' \ --preview-window="down" ) if [[ -z $sel ]]; then log --error "No selection" && exit 1 fi bat $sel.log