mirror of
				https://github.com/RangeNetworks/openbts.git
				synced 2025-11-03 21:33:15 +00:00 
			
		
		
		
	git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@2387 19bc5d8c-e614-43d4-8b26-e1612bc8e597
		
			
				
	
	
		
			80 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/python
 | 
						|
 | 
						|
 | 
						|
import sys
 | 
						|
 | 
						|
 | 
						|
if len(sys.argv)<2:
 | 
						|
	print sys.argv[0]," configFile"
 | 
						|
	sys.exit()
 | 
						|
 | 
						|
filename = sys.argv[1]
 | 
						|
 | 
						|
 | 
						|
# This needs to match what is in Configuration.cpp.
 | 
						|
header = " \
 | 
						|
CREATE TABLE IF NOT EXISTS CONFIG ( \
 | 
						|
KEYSTRING TEXT UNIQUE NOT NULL, \
 | 
						|
VALUESTRING TEXT, \
 | 
						|
STATIC INTEGER DEFAULT 0, \
 | 
						|
OPTIONAL INTEGER DEFAULT 0, \
 | 
						|
COMMENTS TEXT DEFAULT '' \
 | 
						|
);"
 | 
						|
 | 
						|
 | 
						|
inFile = open(filename,"r")
 | 
						|
 | 
						|
knownKeys = []
 | 
						|
 | 
						|
 | 
						|
def processDirective(dirLine):
 | 
						|
	(directive,key) = dirLine.split(' ')
 | 
						|
	if directive=="static":
 | 
						|
		if key not in knownKeys:
 | 
						|
			print "non-existant key",key,"cannot be static"
 | 
						|
			sys.exit()
 | 
						|
		print "UPDATE CONFIG SET STATIC=1 WHERE KEYSTRING==\""+key+"\";"
 | 
						|
		return
 | 
						|
	if directive=="optional":
 | 
						|
		if key not in knownKeys:
 | 
						|
			print "INSERT INTO CONFIG (KEYSTRING,OPTIONAL) VALUES (\""+key+"\",1);"
 | 
						|
			return
 | 
						|
		print "UPDATE CONFIG SET OPTIONAL=1 WHERE KEYSTRING==\""+key+"\";"
 | 
						|
		return
 | 
						|
	print "unknown directive",directive
 | 
						|
	sys.exit()
 | 
						|
 | 
						|
 | 
						|
print header
 | 
						|
 | 
						|
for line in inFile:
 | 
						|
	line = line[:-1].lstrip()
 | 
						|
	if len(line)==0:
 | 
						|
		continue
 | 
						|
	# process comments
 | 
						|
	if line[0]=='#':
 | 
						|
		print "--", line
 | 
						|
		continue
 | 
						|
	# process directive
 | 
						|
	if line[0]=='$':
 | 
						|
		processDirective(line[1:])
 | 
						|
		continue
 | 
						|
	# key-value pairs
 | 
						|
	keyval = line.split(' ',1)
 | 
						|
	key = keyval[0]
 | 
						|
	if key in knownKeys:
 | 
						|
		print "key",key,"not unique"
 | 
						|
		sys.exit()
 | 
						|
	if len(keyval)==1:
 | 
						|
		print "INSERT INTO CONFIG (KEYSTRING) VALUES (\""+key+"\");"
 | 
						|
	else:
 | 
						|
		value = keyval[1]
 | 
						|
		print "INSERT INTO CONFIG (KEYSTRING,VALUESTRING) VALUES (\""+key+"\",\""+value+"\");"
 | 
						|
	knownKeys.append(key)
 | 
						|
inFile.close()
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 |