blob: 8722e2c9ac2a5af9a98d588f5a27fb7392b39f0d [file]
#!/bin/bash
set -e
# Function to get seconds from a date string
get_seconds() {
local date_string="$1"
local os
os=$(uname -s)
if [[ "$os" == "Darwin" ]]; then
# macOS (BSD date)
date -j -f "%Y-%m-%d %H:%M:%S" "$date_string" +%s 2>/dev/null
elif [[ "$os" == "Linux" ]]; then
# Linux (GNU date)
date -d "$date_string" +%s 2>/dev/null
else
echo "Error: Unsupported operating system for get_seconds." >&2
return 1
fi
}
# Function to initialize start time
initialize_start_time() {
date "+%Y-%m-%d %H:%M:%S"
}
# Function to record build metrics
record_build_metrics() {
local start_time="$1"
echo "Script execution started at $start_time"
local end_time
end_time="$(date "+%Y-%m-%d %H:%M:%S")"
echo "Script execution completed at $end_time"
local start_seconds
local end_seconds
start_seconds=$(get_seconds "$start_time")
end_seconds=$(get_seconds "$end_time")
if [ -z "$start_seconds" ] || [ -z "$end_seconds" ]; then
echo "Error: Could not parse start or end time for metrics." >&2
return 1
fi
local difference=$((end_seconds - start_seconds))
local difference_formatted
if [ "$difference" -gt 60 ]; then
difference_formatted="$((difference / 60)) minutes"
else
difference_formatted="$difference seconds"
fi
if [ -z "$DIST_DIR" ]; then
echo "Error: DIST_DIR is not set. Cannot write build metrics." >&2
return 1
fi
echo "$difference_formatted" > "$DIST_DIR/build_metrics.txt"
echo "Build metrics written to $DIST_DIR/build_metrics.txt: $difference_formatted"
}