#!/usr/bin/env python3
# Copyright 2019 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

from __future__ import print_function

import dbus
import flimflam

flim = flimflam.FlimFlam(dbus.SystemBus())

for service in flim.GetObjectList('Service'):
    properties = service.GetProperties()

    print('[ %s ]' % (service.object_path))

    for key in properties.keys():
        print('    %s = %s' %
              (key, flimflam.convert_dbus_value(properties[key], 4)))

    print('')
