diff --git a/skills/kugetsu/scripts/kugetsu-config.sh b/skills/kugetsu/scripts/kugetsu-config.sh index 8efbcbf..00bf52b 100755 --- a/skills/kugetsu/scripts/kugetsu-config.sh +++ b/skills/kugetsu/scripts/kugetsu-config.sh @@ -32,7 +32,7 @@ if [ -f "$KUGETSU_DIR/config" ]; then fi mask_sensitive_vars() { - local line="$1" + local line="${1:-}" for var in GITEA_TOKEN GITHUB_TOKEN GITLAB_TOKEN API_KEY PASSWORD TOKEN SECRET; do if [[ "$line" =~ $var ]]; then line=$(echo "$line" | sed -E "s/=.*/=***MASKED***/") diff --git a/skills/kugetsu/scripts/kugetsu-log.sh b/skills/kugetsu/scripts/kugetsu-log.sh index 84586b3..85d61a7 100755 --- a/skills/kugetsu/scripts/kugetsu-log.sh +++ b/skills/kugetsu/scripts/kugetsu-log.sh @@ -1,6 +1,40 @@ #!/bin/bash set -euo pipefail +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +source "$SCRIPT_DIR/kugetsu-config.sh" + +log() { + local level="${1:-}" + local component="${2:-}" + local message="${3:-}" + local timestamp + timestamp=$(date -Iseconds) + + case "$level" in + info|warn|error|debug) ;; + *) + echo "Error: log level must be info|warn|error|debug" >&2 + return 1 + ;; + esac + + if [ -z "$message" ]; then + message="$component" + component="${level}" + level="info" + fi + + local masked + masked=$(mask_sensitive_vars "$message") + echo "[$timestamp] $level $component $masked" +} + +log_debug() { log "debug" "$1" "${2:-}"; } +log_info() { log "info" "$1" "${2:-}"; } +log_warn() { log "warn" "$1" "${2:-}"; } +log_error() { log "error" "$1" "${2:-}"; } + cmd_logs() { local count="${1:-10}"