blob: 5067ccfc9443cce636df9f7de46c2d8d140e8dd2 [file] [log] [blame]
#!/bin/bash
# shellcheck disable=SC2154
# Constants
declare -rx DUMP_MANAGER='xyz.openbmc_project.Dump.Manager'
declare -rx DUMP_PATH='/xyz/openbmc_project/dump/opdump/entry'
declare -rx DUMP_PROP='xyz.openbmc_project.Common.Progress'
# Variables
declare -x DRIVER=""
declare -x YAML_FILE=""
declare -x ADDL_DATA_PATH=""
declare -x START_TIME=0
declare -x END_TIME=0
# Initialize variables
function initialize_variables() {
DRIVER=$(awk -F '[=()]' '/VERSION_ID/ {print $2}' /etc/os-release)
YAML_FILE="$content_path/info.yaml"
ADDL_DATA_PATH="$content_path/plat_dump/additional_data/"
}
# Function to get the dump start and completed time
function dump_time_details() {
START_TIME=$(busctl get-property "$DUMP_MANAGER" "$DUMP_PATH/$dump_id" \
"$DUMP_PROP" StartTime | awk '{print $2}')
END_TIME=$(busctl get-property "$DUMP_MANAGER" "$DUMP_PATH/$dump_id" \
"$DUMP_PROP" CompletedTime | awk '{print $2}')
if [ -z "$START_TIME" ] || [ "$START_TIME" -eq 0 ]; then
echo "Could not fetch start time for $dump_id. Setting manually"
START_TIME=$(date +%s)
fi
start=$(date -d @"$START_TIME" +'%Y-%m-%d %H:%M:%S')
if [ -z "$END_TIME" ] || [ "$END_TIME" -eq 0 ]; then
echo "Could not fetch end time for $dump_id. Setting manually"
END_TIME=$(date +%s)
fi
end=$(date -d @"$END_TIME" +'%Y-%m-%d %H:%M:%S')
printf "dump-start-time: %s\n" "$start" >> "$YAML_FILE"
printf "dump-end-time: %s\n" "$end" >> "$YAML_FILE"
}
# Function to fetch additional details
function get_addl_data() {
if [ -d "$ADDL_DATA_PATH" ]; then
for entry in "$ADDL_DATA_PATH"/*; do
while IFS= read -r line; do
echo "$line" >> "$YAML_FILE"
done < "$entry"
done
fi
}
# Function to write data to info.yaml file
function write_to_info_file() {
{
printf "%s\n" "# SPDX-License-Identifier: GPL-2.0"
printf "%s\n" "%YAML 1.2"
printf "%s\n\n" "---"
printf "generation: p10\n"
printf "driver: %s\n" "$DRIVER"
} >> "$YAML_FILE"
dump_time_details
get_addl_data
}
# Run main
initialize_variables
write_to_info_file