0001"""
0002Parses default-php.ini for variables, and gives metadata.
0003
0004Not really used in any interesting way currently.
0005"""
0006import os
0007
0008php_ini_location = os.path.join(os.path.dirname(__file__),
0009 'default-php.ini')
0010
0011f = open(php_ini_location)
0012
0013class Option(object):
0014
0015 def __init__(self, name, section, default, description):
0016 self.name = name
0017 self.default = default
0018 self.description = description
0019 self.section = section
0020
0021options = []
0022options_by_name = {}
0023
0024show_ignored = False
0025
0026def read_data():
0027 last_description = []
0028 last_section = None
0029 for line in f:
0030 line = line.strip()
0031 if not line:
0032 if show_ignored and last_description:
0033 print 'ignoring description:'
0034 print '\n'.join([' '+l for l in last_description])
0035 last_description = []
0036 continue
0037 if line.startswith('['):
0038 line = line[1:]
0039 if line.endswith(']'):
0040 line = line[:-1]
0041 line = line.strip()
0042 last_section = line
0043 last_description = []
0044 continue
0045 if line.startswith(';'):
0046 line = line.strip('; ')
0047 if last_description or line:
0048 last_description.append(line)
0049 continue
0050 name, value = line.split('=', 1)
0051 name = name.strip()
0052 value = value.strip()
0053 op = Option(name, last_section, value, '\n'.join(last_description))
0054 last_description = []
0055 options.append(op)
0056 options_by_name[op.name] = op
0057
0058if __name__ == '__main__':
0059 import sys
0060 last_section = None
0061 if '-v' in sys.argv[1:]:
0062 show_ignored = True
0063 read_data()
0064
0065 for op in options:
0066 if last_section != op.section:
0067 print '\n\n[%s]\n' % op.section
0068 last_section = op.section
0069 print '%s (default: %s)' % (op.name, op.default or 'none')
0070 if op.description:
0071 print '\n'.join(
0072 [' '+l for l in op.description.splitlines()])
0073 print
0074
0075else:
0076 read_data()