ocarina/src/base/settings.py

79 lines
1.5 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):
if(all == False):
return settings[key.upper()][0]
else:
return settings[key.upper()]
# 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 = "v"
long = ["verbose"]
# Attempt to parse user input
try:
opts, args = getopt.getopt(input, optc, long)
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")
# Find out what platform we are running on
set("ARCH", sys.platform)
if get("ARCH") == 'linux2':
readfile("/etc/ocarina.conf")
parseInput()