ocarina/src/base/settings.py

103 lines
2.0 KiB
Python

import os.path
__author__="bjschuma"
__date__ ="$Dec 4, 2009 4:04:24 PM$"
#import bt.message.disp
import os
import sys
import getopt
# Create a dictionary to hold the settings
global settings
settings = dict()
# Set key to value
# This must be defined before other imports so bt.message can use it
def set(key,value):
stack = [value]
if settings.has_key(key.upper()) == True:
stack += settings[key.upper()]
settings[key.upper()] = stack
from bt.message import write
from bt.message import error
from bt.file import fopen
# Return the value at key
def get(key, all=False):
global settings
if(all == False):
return settings[key.upper()][0]
else:
return settings[key.upper()]
# Replace settings[key] with value
def replace(key,value):
global settings
key = key.upper()
if (key in settings) == True:
del settings[key]
set(key,value)
# Pop off the first value at key.upper()
def pop(key):
key = key.upper()
global settings
if (key in settings.keys()) == True:
return settings[key].pop(0)
return None
# Read settings from file
def readfile(file):
write("Reading file: "+file,True)
file = fopen(file)
# Parse the user input
def parseInput():
write("Parsing user input",True)
input = sys.argv[1:]
write(input,True)
optc = "vp:"
long = ["verbose", "path="]
# Attempt to parse user input
try:
opts, args = getopt.getopt(input, optc, long)
for opt in opts:
if opt[0] == "-p":
set("PLUGPATH", opt[1])
set("ARGS", args)
except getopt.GetoptError, e:
error(e.msg)
return
# Set default values
# Set verbose first so we can use write()
set("VERBOSE", ('-v' in sys.argv) or ("--verbose" in sys.argv) )
write("Setting default values...", True)
# Find who is running the program
user = os.path.expanduser("~")
#user = os.path.join(user,".ocarina2")
set("USER", user)
set("PLUGPATH", "../core")
set("PLUGPATH", "../extra")
# Find out what platform we are running on
set("ARCH", sys.platform)
#if get("ARCH") == 'linux2':
# readfile("/etc/ocarina.conf")
parseInput()