Files
mcmartin d0dcf67ac6 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
2008-02-24 22:06:03 +00:00

80 lines
2.2 KiB
Python
Executable File

#!/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