xref: /rk3399_rockchip-uboot/tools/buildman/bsettings.py (revision 8b985eebd0f7582614399fdf6c108a81ab446ae7)
1fc3fe1c2SSimon Glass# Copyright (c) 2012 The Chromium OS Authors.
2fc3fe1c2SSimon Glass#
31a459660SWolfgang Denk# SPDX-License-Identifier:	GPL-2.0+
4fc3fe1c2SSimon Glass#
5fc3fe1c2SSimon Glass
6fc3fe1c2SSimon Glassimport ConfigParser
7fc3fe1c2SSimon Glassimport os
8*8b985eebSSimon Glassimport StringIO
9fc3fe1c2SSimon Glass
10fc3fe1c2SSimon Glass
11fc3fe1c2SSimon Glassdef Setup(fname=''):
12fc3fe1c2SSimon Glass    """Set up the buildman settings module by reading config files
13fc3fe1c2SSimon Glass
14fc3fe1c2SSimon Glass    Args:
15fc3fe1c2SSimon Glass        config_fname:   Config filename to read ('' for default)
16fc3fe1c2SSimon Glass    """
17fc3fe1c2SSimon Glass    global settings
18fc3fe1c2SSimon Glass    global config_fname
19fc3fe1c2SSimon Glass
20fc3fe1c2SSimon Glass    settings = ConfigParser.SafeConfigParser()
21*8b985eebSSimon Glass    if fname is not None:
22fc3fe1c2SSimon Glass        config_fname = fname
23fc3fe1c2SSimon Glass        if config_fname == '':
24fc3fe1c2SSimon Glass            config_fname = '%s/.buildman' % os.getenv('HOME')
25fc3fe1c2SSimon Glass        if config_fname:
26fc3fe1c2SSimon Glass            settings.read(config_fname)
27fc3fe1c2SSimon Glass
28*8b985eebSSimon Glassdef AddFile(data):
29*8b985eebSSimon Glass    settings.readfp(StringIO.StringIO(data))
30*8b985eebSSimon Glass
31fc3fe1c2SSimon Glassdef GetItems(section):
32fc3fe1c2SSimon Glass    """Get the items from a section of the config.
33fc3fe1c2SSimon Glass
34fc3fe1c2SSimon Glass    Args:
35fc3fe1c2SSimon Glass        section: name of section to retrieve
36fc3fe1c2SSimon Glass
37fc3fe1c2SSimon Glass    Returns:
38fc3fe1c2SSimon Glass        List of (name, value) tuples for the section
39fc3fe1c2SSimon Glass    """
40fc3fe1c2SSimon Glass    try:
41fc3fe1c2SSimon Glass        return settings.items(section)
42fc3fe1c2SSimon Glass    except ConfigParser.NoSectionError as e:
43fc3fe1c2SSimon Glass        print e
44fc3fe1c2SSimon Glass        return []
45fc3fe1c2SSimon Glass    except:
46fc3fe1c2SSimon Glass        raise
47