2008-07-16 06:47:42 +00:00
|
|
|
#!/usr/bin/env python
|
|
|
|
|
|
|
|
#TODO: fix writing
|
2008-12-02 19:31:04 +00:00
|
|
|
#TODO
|
2008-07-16 06:47:42 +00:00
|
|
|
|
|
|
|
import re
|
|
|
|
import os
|
|
|
|
|
2008-12-02 09:02:57 +00:00
|
|
|
class FceuxConfigParser:
|
2008-07-16 06:47:42 +00:00
|
|
|
def __init__(self, filename):
|
2008-12-02 09:02:57 +00:00
|
|
|
self.fn = filename
|
2008-07-16 06:47:42 +00:00
|
|
|
|
2008-12-02 09:02:57 +00:00
|
|
|
def _open(self):
|
|
|
|
try:
|
2008-12-02 19:31:04 +00:00
|
|
|
self.f = open(self.fn, "r")
|
2008-12-02 09:02:57 +00:00
|
|
|
return 1
|
|
|
|
except:
|
|
|
|
print "Can't open config."
|
|
|
|
return 0
|
|
|
|
|
|
|
|
|
|
|
|
|
2008-07-16 06:47:42 +00:00
|
|
|
def readKey(self, keyname):
|
2008-12-02 09:02:57 +00:00
|
|
|
self._open()
|
|
|
|
# do some lines
|
2008-07-16 06:47:42 +00:00
|
|
|
while 1:
|
|
|
|
line = self.f.readline()
|
|
|
|
if line == 0:
|
|
|
|
break
|
|
|
|
if re.search(keyname, line):
|
2008-12-02 09:02:57 +00:00
|
|
|
self._close()
|
2008-07-16 06:47:42 +00:00
|
|
|
return line
|
|
|
|
|
|
|
|
# key not found
|
2008-12-02 19:31:04 +00:00
|
|
|
self.f.close()
|
2008-07-16 06:47:42 +00:00
|
|
|
return 0
|
|
|
|
|
|
|
|
def writeKey(self, keyname, value):
|
2008-12-02 09:02:57 +00:00
|
|
|
self._open()
|
2008-07-16 06:47:42 +00:00
|
|
|
|
2008-12-02 19:31:04 +00:00
|
|
|
buf = ""
|
|
|
|
|
2008-07-16 06:47:42 +00:00
|
|
|
cursor = 0
|
|
|
|
# find the key
|
|
|
|
while 1:
|
2008-12-02 19:31:04 +00:00
|
|
|
data = self.f.read(keyname.__len__())
|
|
|
|
buf += data
|
|
|
|
if data == "":
|
2008-07-16 06:47:42 +00:00
|
|
|
return 0
|
2008-12-02 19:31:04 +00:00
|
|
|
if data == keyname:
|
2008-07-16 06:47:42 +00:00
|
|
|
break
|
2008-12-02 09:02:57 +00:00
|
|
|
else:
|
2008-12-02 19:31:04 +00:00
|
|
|
buf += self.f.readline()
|
2008-08-11 04:26:37 +00:00
|
|
|
|
2008-12-02 19:31:04 +00:00
|
|
|
print value
|
|
|
|
|
|
|
|
buf += self.f.read(3)
|
2008-08-11 04:26:37 +00:00
|
|
|
|
2008-12-02 19:31:04 +00:00
|
|
|
buf += str(value)
|
|
|
|
buf += '\n'
|
|
|
|
|
|
|
|
# ignore the rest of the old line
|
|
|
|
self.f.readline()
|
|
|
|
|
|
|
|
# read the rest of the file
|
|
|
|
while 1:
|
|
|
|
data = self.f.readline()
|
|
|
|
if data == "":
|
|
|
|
break
|
|
|
|
buf += data
|
2008-12-02 09:02:57 +00:00
|
|
|
|
2008-12-02 19:31:04 +00:00
|
|
|
self.f.close()
|
2008-12-02 09:02:57 +00:00
|
|
|
|
2008-12-02 19:31:04 +00:00
|
|
|
# write the buffer to the config file
|
|
|
|
self.f = open(self.fn, 'w')
|
|
|
|
self.f.write(buf)
|
2008-12-02 09:02:57 +00:00
|
|
|
self.f.close()
|
2008-12-02 19:31:04 +00:00
|
|
|
|
|
|
|
|
2008-12-02 09:02:57 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
2008-07-16 06:47:42 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|