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