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 | |