#!/usr/bin/env bash # Optional tee of deploy output to a log file under the project root. # Args: project_root log_to_dir_relative [deploy_env] # If deploy_env is set (test|pprod|prod), log file is deploy__YYYYMMDD_HHMMSS.log and starts with a header. deploy_script_tee_log_if_requested() { local project_root="${1:?}" local log_to_dir="${2:-}" local deploy_env="${3:-}" if [[ -z "$log_to_dir" ]]; then return 0 fi mkdir -p "${project_root}/${log_to_dir}" local log_file if [[ -n "$deploy_env" ]]; then log_file="${project_root}/${log_to_dir}/deploy_${deploy_env}_$(date +%Y%m%d_%H%M%S).log" else log_file="${project_root}/${log_to_dir}/deploy_$(date +%Y%m%d_%H%M%S).log" fi { printf '%s\n' "=== LeCoffre deploy log ===" printf '%s\n' "environment=${deploy_env:-} started_at=${DEPLOY_STARTED_AT:-} project_root=${project_root}" } >"$log_file" exec > >(tee -a "$log_file") info "[deploy] Teeing output to ${log_file}" }