| Dhruvaraj Subhashchandran | 9eb4e48 | 2024-05-17 03:35:17 -0500 | [diff] [blame] | 1 | #!/bin/bash | 
 | 2 | # shellcheck disable=SC2154 | 
 | 3 |  | 
 | 4 | # Constants | 
 | 5 | declare -rx DUMP_MANAGER='xyz.openbmc_project.Dump.Manager' | 
 | 6 | declare -rx DUMP_PATH='/xyz/openbmc_project/dump/opdump/entry' | 
 | 7 | declare -rx DUMP_PROP='xyz.openbmc_project.Common.Progress' | 
 | 8 |  | 
 | 9 | # Variables | 
 | 10 | declare -x DRIVER="" | 
 | 11 | declare -x YAML_FILE="" | 
 | 12 | declare -x ADDL_DATA_PATH="" | 
 | 13 | declare -x START_TIME=0 | 
 | 14 | declare -x END_TIME=0 | 
 | 15 |  | 
 | 16 | # Initialize variables | 
 | 17 | function initialize_variables() { | 
 | 18 |     DRIVER=$(awk -F '[=()]' '/VERSION_ID/ {print $2}' /etc/os-release) | 
 | 19 |     YAML_FILE="$content_path/info.yaml" | 
 | 20 |     ADDL_DATA_PATH="$content_path/plat_dump/additional_data/" | 
 | 21 | } | 
 | 22 |  | 
 | 23 | # Function to get the dump start and completed time | 
 | 24 | function dump_time_details() { | 
 | 25 |     START_TIME=$(busctl get-property "$DUMP_MANAGER" "$DUMP_PATH/$dump_id" \ | 
 | 26 |         "$DUMP_PROP" StartTime | awk '{print $2}') | 
 | 27 |     END_TIME=$(busctl get-property "$DUMP_MANAGER" "$DUMP_PATH/$dump_id" \ | 
 | 28 |         "$DUMP_PROP" CompletedTime | awk '{print $2}') | 
 | 29 |  | 
 | 30 |     if [ -z "$START_TIME" ] || [ "$START_TIME" -eq 0 ]; then | 
 | 31 |         echo "Could not fetch start time for $dump_id. Setting manually" | 
 | 32 |         START_TIME=$(date +%s) | 
 | 33 |     fi | 
 | 34 |  | 
 | 35 |     start=$(date -d @"$START_TIME" +'%Y-%m-%d %H:%M:%S') | 
 | 36 |     if [ -z "$END_TIME" ] || [ "$END_TIME" -eq 0 ]; then | 
 | 37 |         echo "Could not fetch end time for $dump_id. Setting manually" | 
 | 38 |         END_TIME=$(date +%s) | 
 | 39 |     fi | 
 | 40 |     end=$(date -d @"$END_TIME" +'%Y-%m-%d %H:%M:%S') | 
 | 41 |  | 
 | 42 |     printf "dump-start-time: %s\n" "$start" >> "$YAML_FILE" | 
 | 43 |     printf "dump-end-time: %s\n" "$end" >> "$YAML_FILE" | 
 | 44 | } | 
 | 45 |  | 
 | 46 | # Function to fetch additional details | 
 | 47 | function get_addl_data() { | 
 | 48 |     if [ -d "$ADDL_DATA_PATH" ]; then | 
 | 49 |         for entry in "$ADDL_DATA_PATH"/*; do | 
 | 50 |             while IFS= read -r line; do | 
 | 51 |                 echo "$line" >> "$YAML_FILE" | 
 | 52 |             done < "$entry" | 
 | 53 |         done | 
 | 54 |     fi | 
 | 55 | } | 
 | 56 |  | 
 | 57 | # Function to write data to info.yaml file | 
 | 58 | function write_to_info_file() { | 
 | 59 |     { | 
 | 60 |         printf "%s\n" "# SPDX-License-Identifier: GPL-2.0" | 
 | 61 |         printf "%s\n" "%YAML 1.2" | 
 | 62 |         printf "%s\n\n" "---" | 
 | 63 |         printf "generation: p10\n" | 
 | 64 |         printf "driver: %s\n" "$DRIVER" | 
 | 65 |     } >> "$YAML_FILE" | 
 | 66 |     dump_time_details | 
 | 67 |     get_addl_data | 
 | 68 | } | 
 | 69 |  | 
 | 70 | # Run main | 
 | 71 | initialize_variables | 
 | 72 | write_to_info_file | 
 | 73 |  |