mirror of
				https://github.com/RangeNetworks/openbts.git
				synced 2025-10-30 19:33:33 +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()
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 |