27 lines
956 B
Bash
27 lines
956 B
Bash
#!/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_<env>_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:-<unset>} started_at=${DEPLOY_STARTED_AT:-} project_root=${project_root}"
|
|
} >"$log_file"
|
|
exec > >(tee -a "$log_file")
|
|
info "[deploy] Teeing output to ${log_file}"
|
|
}
|