#!/usr/bin/python

# Copyright 2018 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.

import dbus, flimflam

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

for obj in flim.GetObjectList("Profile"):
    obj_properties = obj.GetProperties(utf8_strings = True)

    print "[ %s ]" % (obj.object_path)
    for key in obj_properties.keys():
        print "    %s = %s" % \
            (key, flimflam.convert_dbus_value(obj_properties[key], 4))

print
