#!/usr/bin/env python3
# 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.

from __future__ import print_function

import dbus
import flimflam

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

for obj in flim.GetObjectList('Profile'):
    obj_properties = obj.GetProperties()

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

print('')
