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