config_loader.py :  » Web-Frameworks » Karrigell » Karrigell-3.1 » Python Open Source

Home
Python Open Source
1.3.1.2 Python
2.Ajax
3.Aspect Oriented
4.Blog
5.Build
6.Business Application
7.Chart Report
8.Content Management Systems
9.Cryptographic
10.Database
11.Development
12.Editor
13.Email
14.ERP
15.Game 2D 3D
16.GIS
17.GUI
18.IDE
19.Installer
20.IRC
21.Issue Tracker
22.Language Interface
23.Log
24.Math
25.Media Sound Audio
26.Mobile
27.Network
28.Parser
29.PDF
30.Project Management
31.RSS
32.Search
33.Security
34.Template Engines
35.Test
36.UML
37.USB Serial
38.Web Frameworks
39.Web Server
40.Web Services
41.Web Unit
42.Wiki
43.Windows
44.XML
Python Open Source » Web Frameworks » Karrigell 
Karrigell » Karrigell 3.1 » config_loader.py
"""Karrigell configuration loader
This script doesn't define any configuration option

It determines the directory for the server configuration script : either supplied
in the command line, or the same directory as this script's

It then loads the server configuration script, adds folders "core" and "package"
to sys.path, then sets values in k_config.py
"""
import sys
import os
import getopt

def usage():
    print "Usage : python Karrigell.py [-h] ConfigurationDirectory"
    print "\n\th = help (shows this message)"
    print "\n\tConfigurationDirectory = the directory where the server" \
        "configuration script is located."

# get command-line options
try:
    _opts, _args = getopt.getopt(sys.argv[1:], "h",["processing-fork="])
except getopt.GetoptError:
    # print usage information and exit:
    usage()
    raise

# command-line options
for o, a in _opts:
    if o in ("-h"):
        usage()
        sys.exit()

server_dir = os.getcwd()

# if an argument is given at the end of the command line, it is
# the path to the server configuration file
if _args:
    server_conf_dir = _args[0]
else:
    server_conf_dir = os.getcwd()

# load server configuration
# adds names in server_config to namespace
execfile(os.path.join(server_conf_dir,"server_config.py"))

# add core and package to sys.path
# put them before standard distribution to make sure we have the
# updated version of PyDbLite, HTMLTags etc.
for _dir in ["core","package"]:
    path = os.path.join(karrigell_dir,_dir)
    if not path in sys.path:
        sys.path.insert(1,path)

def load():
    """
    Returns a dictionnary usable for k_config.py globals intialisation.
    """
    sc = {}
    execfile(os.path.join(server_conf_dir,"server_config.py"), globals(), sc)
    server_config={"server_dir":server_dir, "_args":_args}
    for option in ["karrigell_dir","host_conf_dir",
                   "cache",
                   "persistent_sessions",
                   "use_ipv6",
                   "max_threads","process_num",
                   "process_num_ipv6",
                   "port","silent",
                   "modules"]:
        try :
            server_config[option] = sc[option]
        except KeyError :
            raise KeyError, 'You must set "%s" option in server_config file' % option
    return server_config
    
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.