xref: /openbmc/openpower-debug-collector/dump/tools/opdump/dumpdelete (revision d158952df8cadbd4197cc9759cd94291490f15ac)
1#!/bin/bash
2
3# Check if the interface parameter is provided
4if [ -z "$1" ]; then
5    echo "Usage: $0 <interface>"
6    echo "Example: $0 xyz.openbmc_project.Dump.Entry.BMC"
7    exit 1
8fi
9
10INTERFACE=$1
11
12# Run the busctl command with verbose output and capture the output
13output=$(busctl --verbose call xyz.openbmc_project.Dump.Manager \
14        /xyz/openbmc_project/dump \
15        org.freedesktop.DBus.ObjectManager \
16    GetManagedObjects)
17
18# Parse the output and print object paths containing the specified interface
19declare -A seen_paths
20
21echo "$output" | awk -v interface="$INTERFACE" '
22  /OBJECT_PATH/ {
23    path = $2;
24    gsub(/;/, "", path);
25    gsub(/"/, "", path);
26  }
27  $0 ~ interface {
28    print path;
29  }
30' | while read -r path; do
31    if [ -z "${seen_paths[$path]}" ]; then
32        echo "Deleting: $path"
33        busctl call xyz.openbmc_project.Dump.Manager "${path}" \
34            xyz.openbmc_project.Object.Delete Delete
35        seen_paths["$path"]=1
36    fi
37done
38