#!/usr/bin/env python

import ConfigParser, os
import sys
from optparse import OptionParser

usage = "usage: %prog [options] php_ini_file"
parser = OptionParser(usage=usage)
parser.add_option("-o", "--override", dest="override",
                  help="Load custom directives")

server_wide_php_ini = "/etc/php5/fastcgi/php.ini"

(options, args) = parser.parse_args()

config = ConfigParser.SafeConfigParser()

if len(args) < 1:
    parser.error("incorrect number of arguments")
config_name = args[0]

os.umask(022)
try:
    config.read(server_wide_php_ini)
except:
    pass

# Read data from stdin
try:
    config.readfp(sys.stdin)
except:
    sys.stderr.write( "Cannot parse php.ini: %s\n" % str(sys.exc_info()[:2]) )
    sys.exit(1)

try:
    if options.override != None:
        config.read(options.override)
except:
    pass

parent_dir = os.path.dirname(config_name)
if not os.path.exists(parent_dir):
    os.mkdir(parent_dir)
    os.chown(parent_dir, 0, 0)

configfile=open(config_name, 'wb')
config.write(configfile)
