X-Git-Url: https://mudpy.org/gitweb?a=blobdiff_plain;f=lib%2Fmuff%2Fmuffvars.py;h=1abfe86acc87c02998c05aec136ab28bd35a483e;hb=da136e612520ef6a3a19d99563e44b6518f91e7e;hp=cededced7bc0a897245f9003809be21089f9fc8c;hpb=0f39af78818acbbee0b99145ff5ff303553027c6;p=mudpy.git diff --git a/lib/muff/muffvars.py b/lib/muff/muffvars.py index cededce..1abfe86 100644 --- a/lib/muff/muffvars.py +++ b/lib/muff/muffvars.py @@ -3,11 +3,30 @@ # Copyright (c) 2005 mudpy, Jeremy Stanley , all rights reserved. # Licensed per terms in the LICENSE file distributed with this software. +# persistent variables are stored in ini-style files supported by ConfigParser +import ConfigParser + +# need to be able to create the variable save file's directory +import os + # hack to load all modules in the muff package import muff for module in muff.__all__: exec("import " + module) +# does the files:variable setting exist yet? +try: + if muffconf.get("files", "variable"): pass + +# if not, reload the muffconf module +except AttributeError: + reload(muffconf) + +# now we can safely load persistent variables from file +variable_file = muffconf.get("files", "variable") +variable_data = ConfigParser.SafeConfigParser() +variable_data.read(variable_file) + # if there is no userlist, create an empty one try: if userlist: pass @@ -26,3 +45,30 @@ terminate_world = False # flag to raise when all code modules, config and data should be reloaded reload_modules = False +# a dict of replacement macros +macros = { + "$(eol)": "\r\n", + "$(bld)": chr(27) + "[1m", + "$(nrm)": chr(27) + "[0m", + "$(blk)": chr(27) + "[30m", + "$(grn)": chr(27) + "[32m", + "$(red)": chr(27) + "[31m" + } + +def save(): + """Function to save persistent variables to a file.""" + + # try to open the variable file + try: + file_descriptor = file(variable_file, "w") + + # failing that, make the directory in which it resides first + except IOError: + os.makedirs(os.sep.join(variable_file.split(os.sep)[:-1])) + file_descriptor = file(variable_file, "w") + + # now write the data and close out the file + variable_data.write(file_descriptor) + file_descriptor.flush() + file_descriptor.close() +