--- desktop.py | 3 +- instdata.py | 3 +- language.py | 2 +- network.py | 4 +-- simpleconfig.py | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 92 insertions(+), 8 deletions(-) create mode 100644 simpleconfig.py diff --git a/desktop.py b/desktop.py index fe34a5a..49b7bbe 100644 --- a/desktop.py +++ b/desktop.py @@ -20,8 +20,7 @@ # import string - -from rhpl.simpleconfig import SimpleConfigFile +from simpleconfig import SimpleConfigFile import logging log = logging.getLogger("anaconda") diff --git a/instdata.py b/instdata.py index 30bdaf6..07984d5 100644 --- a/instdata.py +++ b/instdata.py @@ -39,8 +39,7 @@ import users import shlex from flags import * from constants import * - -from rhpl.simpleconfig import SimpleConfigFile +from simpleconfig import SimpleConfigFile import rhpl.keyboard as keyboard from pykickstart.version import versionToString, DEVEL diff --git a/language.py b/language.py index 1307909..78c86ad 100644 --- a/language.py +++ b/language.py @@ -25,7 +25,7 @@ import string import locale import gettext -from rhpl.simpleconfig import SimpleConfigFile +from simpleconfig import SimpleConfigFile import logging log = logging.getLogger("anaconda") diff --git a/network.py b/network.py index 7cfb399..5c08e18 100644 --- a/network.py +++ b/network.py @@ -32,11 +32,9 @@ import socket import struct import os import time -import rhpl import dbus from flags import flags - -from rhpl.simpleconfig import SimpleConfigFile +from simpleconfig import SimpleConfigFile import gettext _ = lambda x: gettext.ldgettext("anaconda", x) diff --git a/simpleconfig.py b/simpleconfig.py new file mode 100644 index 0000000..94e74be --- /dev/null +++ b/simpleconfig.py @@ -0,0 +1,88 @@ +# +# simpleconifg.py - representation of a simple configuration file (sh-like) +# +# Matt Wilson <msw@xxxxxxxxxx> +# Jeremy Katz <katzj@xxxxxxxxxx> +# +# Copyright 1999-2002 Red Hat, Inc. +# +# This software may be freely redistributed under the terms of the GNU +# library public license. +# +# You should have received a copy of the GNU Library Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# + +import string +import os + +# use our own ASCII only uppercase function to avoid locale issues +# not going to be fast but not important +def uppercase_ASCII_string(str): + newstr = "" + for i in range(0,len(str)): + if str[i] in string.lowercase: + newstr += chr(ord(str[i])-32) + else: + newstr += str[i] + + return newstr + +class SimpleConfigFile: + def __str__ (self): + s = "" + keys = self.info.keys () + keys.sort () + for key in keys: + # FIXME - use proper escaping + if type (self.info[key]) == type(""): + s = s + key + "=\"" + self.info[key] + "\"\n" + return s + + def __init__ (self): + self.info = {} + + def write(self, file): + f = open(file, "w") + f.write(self.__str__()) + f.close() + + def read(self, file): + if not os.access(file, os.R_OK): + return + + f = open(file, "r") + lines = f.readlines() + f.close() + + for line in lines: + fields = line[:-1].split('=', 2) + if len(fields) < 2: + # how am I supposed to know what to do here? + continue + key = uppercase_ASCII_string(fields[0]) + value = fields[1] + # XXX hack + value = value.replace('"', '') + value = value.replace("'", '') + self.info[key] = value + + def set (self, *args): + for (key, data) in args: + self.info[uppercase_ASCII_string(key)] = data + + def unset (self, *keys): + for key in keys: + key = uppercase_ASCII_string(key) + if self.info.has_key (key): + del self.info[key] + + def get (self, key): + key = uppercase_ASCII_string(key) + if self.info.has_key (key): + return self.info[key] + else: + return "" + + -- 1.6.1 _______________________________________________ Anaconda-devel-list mailing list Anaconda-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/anaconda-devel-list