diff --git a/scripts/common.sh b/scripts/common.sh index ac06e315..eb5956b6 100755 --- a/scripts/common.sh +++ b/scripts/common.sh @@ -51,10 +51,18 @@ log_step() { # Function to measure and log execution time measure_time() { local start_time=$(date +%s) - "$@" - local end_time=$(date +%s) - local duration=$((end_time - start_time)) - log_success "Completed in ${duration} seconds" + if "$@"; then + local end_time=$(date +%s) + local duration=$((end_time - start_time)) + log_success "Completed in ${duration} seconds" + return 0 + else + local exit_code=$? + local end_time=$(date +%s) + local duration=$((end_time - start_time)) + log_error "Failed after ${duration} seconds (exit code: ${exit_code})" + return $exit_code + fi } # Function to print section headers