2005-11-23 18:34:20 +01:00
|
|
|
import ConfigParser,os,tempfile,dircache,string,commands
|
2005-09-23 16:37:07 +02:00
|
|
|
|
2005-11-23 18:34:20 +01:00
|
|
|
configname="webgo.conf"
|
2005-09-23 16:37:07 +02:00
|
|
|
|
|
|
|
|
2005-11-23 18:34:20 +01:00
|
|
|
def read_config(location=None):
|
|
|
|
|
|
|
|
config = ConfigParser.ConfigParser()
|
|
|
|
if location != None:
|
|
|
|
# location of file was given on command line
|
|
|
|
try:
|
|
|
|
config.readfp(open(location))
|
|
|
|
except:
|
|
|
|
#TODO: debug-awareness
|
|
|
|
print "(EE)[%s]: cannot open %s!"%(__name__,location)
|
|
|
|
else:
|
|
|
|
#use default config from . or /etc
|
|
|
|
try:
|
|
|
|
config.readfp(open('/etc/'+configname))
|
|
|
|
except:
|
|
|
|
try:
|
|
|
|
config.readfp(open(configname))
|
|
|
|
except:
|
|
|
|
#TODO: debug-awareness
|
|
|
|
print "(EE)[%s]: cannot open %s in ./ or /etc/!"%(__name__,location)
|
|
|
|
return config
|
|
|
|
|
2005-09-23 16:37:07 +02:00
|
|
|
def read_file(filename):
|
|
|
|
"""
|
|
|
|
read from the file whose name is given
|
|
|
|
@param filename String : name of file to read from
|
|
|
|
@return String: content of given file or None
|
|
|
|
"""
|
|
|
|
try:
|
|
|
|
f = open(filename,"r")
|
|
|
|
filecontent = f.read()
|
|
|
|
f.close()
|
|
|
|
except:
|
|
|
|
#TODO:if debug >=1:
|
|
|
|
print "(EE)[%s]: \"%s\" is not readable!"%(__name__, filename)
|
|
|
|
return ""
|
|
|
|
return filecontent
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def is_dir_readable(path):
|
|
|
|
"""
|
|
|
|
Gets the name of a directory.
|
|
|
|
returns True if dir is readable, else False.
|
|
|
|
"""
|
|
|
|
return os.access(path,os.R_OK)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def write_file(filename,content):
|
|
|
|
"""
|
|
|
|
Write content to the given filename.
|
|
|
|
gets: filename,content.
|
|
|
|
"""
|
|
|
|
try:
|
|
|
|
f = open(filename,"w")#oeffnen und schliessen =>
|
|
|
|
f.close() #datei ist jetzt genullt
|
|
|
|
f = open(filename,"a") #anhaengend oeffnen
|
|
|
|
f.write(content)
|
|
|
|
f.close()
|
|
|
|
return ""
|
|
|
|
except:
|
|
|
|
#TODO: debug
|
|
|
|
#if self.debug >=1:
|
|
|
|
print "(EE)[%s]: \"%s\" is not writeable!"%(__name__, filename)
|
|
|
|
return filename
|
|
|
|
|
|
|
|
def basename(filename):
|
|
|
|
return os.path.basename(filename)
|
|
|
|
|
|
|
|
|
|
|
|
def make_all_dirs_absolute(prefix,dirlist):
|
|
|
|
"""
|
|
|
|
this function gets an absolute pathname and a list of pathnames
|
|
|
|
relative to the first. It returns this list, but with absolute
|
|
|
|
entries.
|
|
|
|
"""
|
|
|
|
ret=[]
|
|
|
|
for element in dirlist:
|
|
|
|
ret.append(os.path.normpath(prefix+"/"+element))
|
|
|
|
return ret
|
|
|
|
|
|
|
|
|
|
|
|
def gen_temp_dir(prefix='pk'):
|
|
|
|
'''returns the name of a secure temporary directory
|
|
|
|
with optional prefix as parameter'''
|
|
|
|
dirname=tempfile.mkdtemp("",prefix)
|
|
|
|
dirname+="/"
|
|
|
|
return dirname
|
|
|
|
|
|
|
|
def gen_temp_file(suffix="--gnugo"):
|
|
|
|
"""
|
|
|
|
returns the name of a generated temporay file.
|
|
|
|
optionally gets a suffix for the filename.
|
|
|
|
"""
|
2005-10-09 15:58:06 +02:00
|
|
|
return tempfile.mkstemp(suffix)[1]
|
|
|
|
|