From 2ed9208e6abf010a6c1f81c5fd417a91cca67cc9 Mon Sep 17 00:00:00 2001 From: Michael Housh Date: Thu, 13 Nov 2025 21:52:14 -0500 Subject: [PATCH] feat: Adds backup logger script. --- env/.local/scripts/backup-logger | 68 ++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100755 env/.local/scripts/backup-logger diff --git a/env/.local/scripts/backup-logger b/env/.local/scripts/backup-logger new file mode 100755 index 0000000..8c72136 --- /dev/null +++ b/env/.local/scripts/backup-logger @@ -0,0 +1,68 @@ +#!/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_FILE=${LOG_FILE:-"$LOG_LABEL.log"} +LOG_DIR="/tmp/logs" + +usage() { + cat < + +FLAGS: + -h | --help: Show this help page. + -s | --show: Show the log messages. + --rm: Remove the log file + +EOF +} + +# Logging utility function, use in place of echo. +log() { + logging log --source "$THIS_FILE" "$@" +} + +show() { + [[ ! -f "$LOG_DIR/$LOG_FILE" ]] && + log --warning "Empty log file." && + exit 0 + + bat "$LOG_DIR/$LOG_FILE" +} + +################################################################################ +# MAIN +################################################################################ + +declare -a msg + +# Setup logging file and label. +source "$SCRIPTS/hypr/logging" +setup-logging "$LOG_FILE" "$LOG_LABEL" + +while [[ $# -gt 0 ]]; do + if [[ $1 == "-h" ]] || [[ $1 == "--help" ]]; then + usage && exit 0 + elif [[ $1 == "-s" ]] || [[ $1 == "--show" ]]; then + show && exit 0 + elif [[ $1 == "--rm" ]]; then + rm "$LOG_DIR/$LOG_FILE" && exit 0 + else + msg+=("$1") + fi + shift +done + +[[ -z "${msg[*]}" ]] && log --error "No message passed to log." && exit 1 + +log "${msg[@]}"