Resource information is now centralized in resources.csv.

The old scripts that trolled content/ and src/ for information
have been retired, and the new script reads the CSV file and
generates the resource files directly.

Future changes to the resource indices or content should be
done by modifying resources.csv and regenerating the data.


git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@2925 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
mcmartin
2008-02-24 22:06:03 +00:00
parent 9d914998b9
commit d0dcf67ac6
10 changed files with 148 additions and 19 deletions
+79
View File
@@ -0,0 +1,79 @@
#!/usr/bin/python
import sys
import os
import os.path
import explorer
import stridgen
from optparse import OptionParser
def process (res):
result = []
for line in res:
line = line.strip()
if len(line) == 0:
continue
mapline = stridgen.makeid(line)
# Remap not to .lst files but to .ls2 ones.
if line.endswith('lst'):
line = os.path.splitext(line)[0]+'.ls2'
if mapline is None:
toadd = "# NO MATCH FOR %s" % line
else:
toadd = "%s = %s" % (mapline, line)
if toadd not in result:
result.append(toadd)
result.sort()
return result
def get_lists(d, ext):
result = []
packages = [explorer.read_list(x) for x in explorer.collect_extension(d, ext)]
for package in packages:
for line in package:
if line[1] not in result:
result.append(line[1])
return result
def get_resources(d, ext):
result = []
if not d.endswith(os.path.sep):
d += os.path.sep
for res in explorer.collect_extension (d, ext):
res = res[len(d):]
if res not in result:
result.append(res)
return result
def create_map(resources):
resmap = process(resources)
keys = []
result = []
for r in resmap:
key = r.split('=')[0].strip()
if key in keys:
result.append("# ERROR: DUPLICATE KEY %s" % key)
else:
keys.append(key)
result.append(r)
return result
if __name__ == "__main__":
opts = OptionParser(usage="usage: %prog [options]")
opts.add_option("-d", "--content-dir", dest="d",
help="Directory to search for resources",
default=os.path.join(os.path.pardir, os.path.pardir, "sc2", "content"))
opts.add_option("-r", "--raw", action="store_true", default=False,
dest="raw", help="do not treat target resources as lists")
opts.add_option("-e", "--extension", dest="ext",
help="Extension for files to search", default=".lst")
(options, args)=opts.parse_args()
if options.raw:
l = get_resources(options.d, options.ext)
else:
l = get_lists(options.d, options.ext)
for line in create_map(l):
print line