Block-Game-Client/runtime/pylibs/normpatch.py

49 lines
1.4 KiB
Python

import sys
import os
import shutil
from optparse import OptionParser
def normalisepatch(in_filename, out_filename=None):
in_filename = os.path.normpath(in_filename)
if out_filename is None:
tmp_filename = in_filename + '.tmp'
else:
out_filename = os.path.normpath(out_filename)
tmp_filename = out_filename
dir_name = os.path.dirname(out_filename)
if dir_name:
if not os.path.exists(dir_name):
os.makedirs(dir_name)
with open(in_filename, 'rb') as inpatch:
with open(tmp_filename, 'wb') as outpatch:
for line in inpatch:
line = line.rstrip('\r\n')
if line[:3] in ['+++', '---', 'Onl', 'dif']:
outpatch.write(line.replace('\\', os.sep).replace('/', os.sep) + os.linesep)
else:
outpatch.write(line + os.linesep)
if out_filename is None:
shutil.move(tmp_filename, in_filename)
def main():
usage = 'usage: %prog [options] src_file [dest_file]'
version = '%prog 6.0'
parser = OptionParser(version=version, usage=usage)
options, args = parser.parse_args()
if len(args) == 1:
in_file = args[0]
out_file = None
elif len(args) == 2:
in_file = args[0]
out_file = args[1]
else:
print >> sys.stderr, 'src_file required'
sys.exit(1)
normalisepatch(in_file, out_file)
if __name__ == '__main__':
main()