This is an automated email from the ASF dual-hosted git repository. yiconghuang pushed a commit to branch feat/add-some-helper-scripts in repository https://gitbox.apache.org/repos/asf/texera.git
commit 7ec4560d79cdbb0df61042f75141ac8cf5eda8e0 Author: Yicong Huang <[email protected]> AuthorDate: Mon Oct 13 00:26:00 2025 -0700 feat: add a script to do colorful logging with texera headers --- bin/utils/texera-logging.sh | 80 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/bin/utils/texera-logging.sh b/bin/utils/texera-logging.sh new file mode 100755 index 0000000000..ad0dc9b1d7 --- /dev/null +++ b/bin/utils/texera-logging.sh @@ -0,0 +1,80 @@ +#!/usr/bin/env bash +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# +# ------------------------------------------------------------- +# texera-logging.sh +# ------------------------------------------------------------- +# Shared logging utilities for all Texera bash scripts. +# +# Features: +# • Colored, consistent logs prefixed with "Texera ▶" +# • Logs go to STDERR by default (so STDOUT stays clean) +# • Easy to override prefix or disable colors +# +# Env vars: +# TEXERA_LOG_PREFIX="Texera ▸" # change prefix +# NO_COLOR=1 # disable color +# TEXERA_LOG_TO_STDERR=0 # send to STDOUT instead +# ------------------------------------------------------------- + +# Prevent direct execution +if [[ "${BASH_SOURCE[0]}" == "$0" ]]; then + printf 'Texera ▶ This file must be sourced, not executed.\n' >&2 + exit 1 +fi + +# --- Color setup --- +_use_color=true +if [[ -n "${NO_COLOR:-}" ]]; then + _use_color=false +fi + +if $_use_color; then + readonly TL_COLOR_BLUE=$'\033[34m' + readonly TL_COLOR_GREEN=$'\033[32m' + readonly TL_COLOR_YELLOW=$'\033[33m' + readonly TL_COLOR_RED=$'\033[31m' + readonly TL_COLOR_BOLD=$'\033[1m' + readonly TL_COLOR_RESET=$'\033[0m' +else + readonly TL_COLOR_BLUE="" TL_COLOR_GREEN="" TL_COLOR_YELLOW="" TL_COLOR_RED="" TL_COLOR_BOLD="" TL_COLOR_RESET="" +fi + +# --- Prefix & output stream --- +readonly TEXERA_LOG_PREFIX="${TEXERA_LOG_PREFIX:-Texera ▶}" +readonly TL_PREFIX="${TL_COLOR_BOLD}${TEXERA_LOG_PREFIX}${TL_COLOR_RESET}" +readonly _TL_TO_STDERR="${TEXERA_LOG_TO_STDERR:-1}" + +# --- Core emitter --- +_tx_emit() { + local _color="$1"; shift + local _level="$1"; shift + if [[ "$_TL_TO_STDERR" == "1" ]]; then + printf '%s %s[%s]%s %s\n' "$TL_PREFIX" "$_color" "$_level" "$TL_COLOR_RESET" "$*" >&2 + else + printf '%s %s[%s]%s %s\n' "$TL_PREFIX" "$_color" "$_level" "$TL_COLOR_RESET" "$*" + fi +} + +# --- Public API --- +tx_info() { _tx_emit "$TL_COLOR_BLUE" "INFO" "$*"; } +tx_success() { _tx_emit "$TL_COLOR_GREEN" "SUCCESS" "$*"; } +tx_warn() { _tx_emit "$TL_COLOR_YELLOW" "WARN" "$*"; } +tx_error() { _tx_emit "$TL_COLOR_RED" "ERROR" "$*"; } + +export -f tx_info tx_success tx_warn tx_error \ No newline at end of file
