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