- Better commandline interface to BuildApplet, complete with options,
  verbose output to the console, etc.
- Allow Cocoa applets to be built with BuildApplet.

No full testing has been done yet to ensure OS9 operation hasn't suffered.
diff --git a/Mac/scripts/BuildApplet.py b/Mac/scripts/BuildApplet.py
index b57c425..0679825 100644
--- a/Mac/scripts/BuildApplet.py
+++ b/Mac/scripts/BuildApplet.py
@@ -15,7 +15,7 @@
 import MacOS
 import EasyDialogs
 import buildtools
-
+import getopt
 
 def main():
 	try:
@@ -54,14 +54,71 @@
 			buildtools.process(template, filename, dstfilename, 1)
 	else:
 		
+		SHORTOPTS = "o:r:ne:v?"
+		LONGOPTS=("output=", "resource=", "noargv", "extra=", "verbose", "help")
+		try:
+			options, args = getopt.getopt(sys.argv[1:], SHORTOPTS, LONGOPTS)
+		except getopt.error:
+			usage()
+		if options and len(args) > 1:
+			sys.stderr.write("Cannot use options when specifying multiple input files")
+			sys.exit(1)
+		dstfilename = None
+		rsrcfilename = None
+		raw = 0
+		extras = []
+		verbose = None
+		for opt, arg in options:
+			if opt in ('-o', '--output'):
+				dstfilename = arg
+			elif opt in ('-r', '--resource'):
+				rsrcfilename = arg
+			elif opt in ('-n', '--noargv'):
+				raw = 1
+			elif opt in ('-e', '--extra'):
+				extras.append(arg)
+			elif opt in ('-v', '--verbose'):
+				verbose = Verbose()
+			elif opt in ('-?', '--help'):
+				usage()
 		# Loop over all files to be processed
-		for filename in sys.argv[1:]:
+		for filename in args:
 			cr, tp = MacOS.GetCreatorAndType(filename)
 			if tp == 'APPL':
-				buildtools.update(template, filename, '')
+				buildtools.update(template, filename, dstfilename)
 			else:
-				buildtools.process(template, filename, '', 1)
+				buildtools.process(template, filename, dstfilename, 1,
+					rsrcname=rsrcfilename, others=extras, raw=raw, progress=verbose)
 
+def usage():
+	print "BuildApplet creates an application from a Python source file"
+	print "Usage:"
+	print "  BuildApplet     interactive, single file, no options"
+	print "  BuildApplet src1.py src2.py ...   non-interactive multiple file"
+	print "  BuildApplet [options] src.py    non-interactive single file"
+	print "Options:"
+	print "  --output o    Output file; default based on source filename, short -o"
+	print "  --resource r  Resource file; default based on source filename, short -r"
+	print "  --noargv      Build applet without drag-and-drop sys.argv emulation, short -n, OSX only"
+	print "  --extra f     Extra file to put in .app bundle, short -e, OSX only"
+	print "  --verbose     Verbose, short -v"
+	print "  --help        This message, short -?"
+	sys.exit(1)
+
+class Verbose:
+	"""This class mimics EasyDialogs.ProgressBar but prints to stderr"""
+	def __init__(self, *args):
+		if args and args[0]:
+			self.label(args[0])
+		
+	def set(self, *args):
+		pass
+		
+	def inc(self, *args):
+		pass
+		
+	def label(self, str):
+		sys.stderr.write(str+'\n')
 
 if __name__ == '__main__':
 	main()