Skip to content

Add Logging Helpers for Improved Traceability #464

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions bin/omakub
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Once you have added the shared folder and the helpers file, you don't need to do this check.
It makes sense to assume it's there.

Original file line number Diff line number Diff line change
@@ -1,4 +1,15 @@
#!/bin/bash

HELPERS_PATH="${OMAKUB_PATH}/shared/helpers.sh"

# Source helper functions
if [ -f "$HELPERS_PATH" ]; then
source "$HELPERS_PATH"
else
echo "Error: Helper functions not found at $HELPERS_PATH"
echo "Please ensure the shared directory is properly set up."
sleep 5
fi

source $OMAKUB_PATH/bin/omakub-sub/header.sh
source $OMAKUB_PATH/bin/omakub-sub/menu.sh
62 changes: 62 additions & 0 deletions shared/helpers.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
#!/usr/bin/env bash

# Shared helper functions for Omakub installation scripts
# This file contains common utilities used across multiple scripts

# Define colors for output
GREEN="\033[0;32m"
RED="\033[0;31m"
YELLOW="\033[0;33m"
BLUE="\033[0;34m"
BOLD="\033[1m"
RESET="\033[0m"

# Setup logging for scripts
# Usage: setup_log "app-name"
setup_log() {
local app_name="$1"
local timestamp=$(date '+%Y%m%d_%H%M%S')
local log_dir="${HOME}/.local/share/omakub/logs"

# Create logs directory if it doesn't exist
mkdir -p "$log_dir"

# Create log file with timestamp
local log_file="${log_dir}/${app_name}_install_${timestamp}.log"

# Return the log file path
echo "$log_file"
}

# Print a formatted message with timestamp
# Usage: log_message "INFO" "Message to log" "$log_file"
log_message() {
local level="$1"
local message="$2"
local log_file="$3"
local timestamp=$(date '+%Y-%m-%d %H:%M:%S')

case "$level" in
"INFO")
level_color="$BLUE"
;;
"SUCCESS")
level_color="$GREEN"
;;
"WARNING")
level_color="$YELLOW"
;;
"ERROR")
level_color="$RED"
;;
*)
level_color="$RESET"
;;
esac

# Print to console with color
echo -e "${level_color}${timestamp} [${level}]${RESET} ${message}"

# Print to log file without color codes
echo "${timestamp} [${level}] ${message}" >> "$log_file"
}