|  | #!/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 | 
|  |  |