Update Python scripts to work in Python 3.

Subversion-branch: /trunk/chocolate-doom
Subversion-revision: 2162
This commit is contained in:
Simon Howard 2010-11-09 16:10:52 +00:00
parent 253731b66d
commit 167d4df40b
3 changed files with 31 additions and 41 deletions

View file

@ -1,6 +1,4 @@
#!/usr/bin/python
#
# $Id: convert-icon 704 2006-10-18 00:51:11Z fraggle $
#!/usr/bin/env python
#
# Copyright(C) 2005 Simon Howard
#
@ -29,7 +27,7 @@ import re
try:
import Image
except ImportError:
print "WARNING: Could not update %s. Please install the Python Imaging library." % sys.argv[2]
print("WARNING: Could not update %s. Please install the Python Imaging library." % sys.argv[2])
sys.exit(0)
@ -71,4 +69,3 @@ def convert_image(filename, output_filename):
convert_image(sys.argv[1], sys.argv[2])

View file

@ -150,11 +150,8 @@ config_files = {}
show_vanilla_options = True
class Parameter:
def __cmp__(self, other):
if self.name < other.name:
return -1
else:
return 1
def __lt__(self, other):
return self.name < other.name
def __init__(self):
self.text = ""
@ -389,7 +386,7 @@ def print_template(template_file, content):
try:
for line in f:
line = line.replace("@content", content)
print line.rstrip()
print(line.rstrip())
finally:
f.close()
@ -407,7 +404,7 @@ def wiki_output(targets, template):
read_wikipages()
for t in targets:
print t.wiki_output()
print(t.wiki_output())
def plaintext_output(targets, template_file):
@ -419,13 +416,13 @@ def plaintext_output(targets, template_file):
print_template(template_file, content)
def usage():
print "Usage: %s [-V] [-c filename ]( -m | -w | -p ) <directory>" \
% sys.argv[0]
print " -c : Provide documentation for the specified configuration file"
print " -m : Manpage output"
print " -w : Wikitext output"
print " -p : Plaintext output"
print " -V : Don't show Vanilla Doom options"
print("Usage: %s [-V] [-c filename ]( -m | -w | -p ) <directory>" \
% sys.argv[0])
print(" -c : Provide documentation for the specified configuration file")
print(" -m : Manpage output")
print(" -w : Wikitext output")
print(" -p : Plaintext output")
print(" -V : Don't show Vanilla Doom options")
sys.exit(0)
# Parse command line

View file

@ -3,10 +3,11 @@
import os
import re
import shutil
import struct
import sys
import tempfile
CAB_HEADER = "MSCE"
CAB_HEADER = "MSCE".encode("ascii")
ARCHITECTURES = {
"shx-sh3": 103,
@ -58,16 +59,10 @@ DIR_VARIABLES = {
}
def write_int16(f, value):
b1 = value & 0xff
b2 = (value >> 8) & 0xff
f.write("%c%c" % (b1, b2))
f.write(struct.pack("<H", value))
def write_int32(f, value):
b1 = value & 0xff
b2 = (value >> 8) & 0xff
b3 = (value >> 16) & 0xff
b4 = (value >> 24) & 0xff
f.write("%c%c%c%c" % (b1, b2, b3, b4))
f.write(struct.pack("<I", value))
# Pad a string with NUL characters so that it has a length that is
# a multiple of 4. At least one NUL is always added.
@ -208,7 +203,7 @@ class StringDictionary:
for i, s in self.string_list:
write_int16(stream, i)
write_int16(stream, len(s))
stream.write(s)
stream.write(s.encode("ascii"))
class DirectoryList:
def __init__(self, cab_header):
@ -252,7 +247,7 @@ class DirectoryList:
# dir_path = dir_path[1:]
dir_path = [ dir ]
dir_path = map(lambda x: dictionary.get(x), dir_path)
dir_path = list(map(lambda x: dictionary.get(x), dir_path))
self.directories[key] = self.index
self.directories_list.append((self.index, dir_path))
@ -334,7 +329,7 @@ class FileList:
write_int16(stream, file_no)
write_int32(stream, flags)
write_int16(stream, len(filename))
stream.write(filename)
stream.write(filename.encode("ascii"))
# TODO?
@ -412,7 +407,7 @@ class LinkList:
# Map dirs that make up the path to strings.
dictionary = self.cab_header.dictionary
dest_path = map(lambda x: dictionary.get(x), dest_path)
dest_path = list(map(lambda x: dictionary.get(x), dest_path))
self.links.append((self.index, target_type, target_id,
base_dir, dest_path))
@ -492,6 +487,7 @@ class CabHeaderFile:
section.write(stream)
pos = stream.tell()
if pos != old_pos + len(section):
print(section)
raise Exception("Section is %i bytes long, but %i written" % \
(len(section), pos - old_pos))
old_pos = pos
@ -574,7 +570,7 @@ class CabFile:
basename = self.__shorten_name(self.files[0], 0)
filename = os.path.join(dir, basename)
stream = file(filename, "w")
stream = open(filename, "wb")
self.cab_header.write(stream)
stream.close()
@ -625,17 +621,17 @@ def expand_path(filename):
# Expand $(xyz) path variables to their Windows equivalents:
def replace_var(match):
var_name = match.group(1)
var_name = match.group(1)
if not var_name in DIR_VARIABLES:
raise Exception("Unknown variable '%s'" % var_name)
else:
return DIR_VARIABLES[var_name]
if not var_name in DIR_VARIABLES:
raise Exception("Unknown variable '%s'" % var_name)
else:
return DIR_VARIABLES[var_name]
return re.sub(r"\$\((.*?)\)", replace_var, filename)
def read_config_file(filename):
f = file(filename)
f = open(filename)
data = f.readlines()
data = "".join(data)
@ -656,10 +652,10 @@ def print_dependencies(filename):
files_list = config["files"]
for dest, source_file in files_list.items():
print source_file
print(source_file)
if len(sys.argv) < 3:
print "Usage: %s <config file> <output file>" % sys.argv[0]
print("Usage: %s <config file> <output file>" % sys.argv[0])
sys.exit(0)
if sys.argv[1] == "-d":