From 507c3d6428560b6c4bf201d4c3a60c55cb1cbf69 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 7 Jul 2016 11:41:20 +0200 Subject: [PATCH] Simple tool to list most of lp_config items (and their default values if possible) --- tools/lpconfig_items.py | 51 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 tools/lpconfig_items.py diff --git a/tools/lpconfig_items.py b/tools/lpconfig_items.py new file mode 100644 index 000000000..6c002c5ab --- /dev/null +++ b/tools/lpconfig_items.py @@ -0,0 +1,51 @@ +#!/usr/bin/python + +from collections import defaultdict +items = defaultdict(list) + +def get_files_in_coreapi_directory(): + from os import walk + files = [] + for (dirpath, dirnames, filenames) in walk('../coreapi'): + files.extend(filenames) + break + return files + +def parse_file(filename): + with open('../coreapi/' + filename, 'r') as infile: + for line in infile: + if 'lp_config_get_' in line: + parse_lpconfig_line(line) + +def parse_lpconfig_line(line): + token = line[line.find('lp_config_get_') + len('lp_config_get_'):] + split = token.split('(', 1) + item_type = split[0] + if '_' in item_type: + return + + params_split = split[1].split(',', 3) + item_section = params_split[1] + if item_section[0] != '"': + return + item_section = item_section.split('"')[1] + + item_name = params_split[2] + if item_name[0] != '"': + return + item_name = item_name.split('"')[1] + + item_default_value = params_split[3].split(')')[0] + if item_type == 'string' and item_default_value[0] != '"': + item_default_value = '' + + item = [item_type, item_name, item_default_value] + items[item_section].append(item) + +for files in get_files_in_coreapi_directory(): + parse_file(files) +for section, items in items.iteritems(): + print '[' + section + ']' + for item in items: + print item[1] + '=' + item[2] + print '' \ No newline at end of file