AVsitter/AVsitter2/prepare-for-oss.py
2017-09-02 09:45:52 +02:00

35 lines
1,021 B
Python

#!/usr/bin/env python
# coding: utf8
import sys, re
def prterr(s):
sys.stderr.write(s + "\n")
def main(argc, argv):
if argc < 2:
prterr(u'Need exactly 1 argument (input filename)')
return 1
# Regex that replaces a line with its OSS version when one's specified.
os_re = re.compile(r'^( *)(.*?)// ?OSS::(.*)$', re.MULTILINE)
f = open(argv[1], "r");
s = f.read()
f.close()
# The U+FFFD character that AVsitter uses causes problems in OpenSim.
# Replace it with U+001F (Unit Separator) which works fine.
s = s.replace(b'\xEF\xBF\xBD', b'\x1F')
# UUIDs in OpenSim
s = s.replace('f2e0ed5e-6592-4199-901d-a659c324ca94', '206fcbe2-47b3-41e8-98e6-8909595b8605')
s = s.replace('b30c9262-9abf-4cd1-9476-adcf5723c029', 'b88526b7-3966-43fd-ae76-1e39881c86aa')
# TODO: Replace LockGuard texture UUIDs
s = os_re.sub(r'\1\3', s)
sys.stdout.write(s)
return 0
ret = main(len(sys.argv), sys.argv)
if ret is not None and ret > 0:
sys.exit(ret)