|
Server : Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17 System : Linux localhost 2.6.18-419.el5 #1 SMP Fri Feb 24 22:47:42 UTC 2017 x86_64 User : nobody ( 99) PHP Version : 5.2.17 Disable Function : NONE Directory : /proc/21572/root/usr/lib64/python2.4/site-packages/rhpl/ |
Upload File : |
#
# simpleconifg.py - representation of a simple configuration file (sh-like)
#
# Matt Wilson <msw@redhat.com>
# Jeremy Katz <katzj@redhat.com>
#
# 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 ""