diff options
| author | Jack Jansen <jack.jansen@cwi.nl> | 1995-08-31 13:48:43 (GMT) | 
|---|---|---|
| committer | Jack Jansen <jack.jansen@cwi.nl> | 1995-08-31 13:48:43 (GMT) | 
| commit | 7c86b21812babb70be95526d9be3e8e7514375ca (patch) | |
| tree | d9a4dfa8de060dac302f693cd297d5a6bc051840 /Mac/scripts/BuildApplet.py | |
| parent | 8094f0ddae5d1189592baaf9c32e25e21f94f76a (diff) | |
| download | cpython-7c86b21812babb70be95526d9be3e8e7514375ca.zip cpython-7c86b21812babb70be95526d9be3e8e7514375ca.tar.gz cpython-7c86b21812babb70be95526d9be3e8e7514375ca.tar.bz2  | |
- Allow PythonApplet to be an alias
- Correctly set bundle and init bits
Diffstat (limited to 'Mac/scripts/BuildApplet.py')
| -rw-r--r-- | Mac/scripts/BuildApplet.py | 39 | 
1 files changed, 23 insertions, 16 deletions
diff --git a/Mac/scripts/BuildApplet.py b/Mac/scripts/BuildApplet.py index c532ea6..55cf526 100644 --- a/Mac/scripts/BuildApplet.py +++ b/Mac/scripts/BuildApplet.py @@ -14,6 +14,7 @@ import os  import marshal  import imp  import macfs +import MACFS  import MacOS  from Res import * @@ -42,18 +43,16 @@ def main():  	for p in sys.path:  		template = os.path.join(p, TEMPLATE)  		try: -			tmpl = open(template, "rb") -			tmpl.close() +			template, d1, d2 = macfs.ResolveAliasFile(template)  			break -		except IOError: +		except (macfs.error, ValueError):  			continue  	else: -		die("Template %s not found" % `template`) +		die("Template %s not found on sys.path" % `TEMPLATE`)  		return -		 -	# Convert to full pathname -	template = macfs.FSSpec(template).as_pathname() -	 +	template = template.as_pathname() +	print 'Using template', template +			  	# Ask for source text if not specified in sys.argv[1:]  	if not sys.argv[1:]: @@ -106,6 +105,10 @@ def process(template, filename, output):  		destname = output  	# Copy the data from the template (creating the file as well) +	template_fss = macfs.FSSpec(template) +	template_fss, d1, d2 = macfs.ResolveAliasFile(template_fss) +	dest_fss = macfs.FSSpec(destname) +	  	tmpl = open(template, "rb")  	dest = open(destname, "wb")  	data = tmpl.read() @@ -117,23 +120,23 @@ def process(template, filename, output):  	# Copy the creator of the template to the destination  	# unless it already got one.  Set type to APPL -	tctor, ttype = MacOS.GetCreatorAndType(template) -	ctor, type = MacOS.GetCreatorAndType(destname) +	tctor, ttype = template_fss.GetCreatorType() +	ctor, type = dest_fss.GetCreatorType()  	if type in undefs: type = 'APPL'  	if ctor in undefs: ctor = tctor  	# Open the output resource fork  	try: -		output = FSpOpenResFile(destname, WRITE) +		output = FSpOpenResFile(dest_fss, WRITE)  	except MacOS.Error:  		print "Creating resource fork..."  		CreateResFile(destname) -		output = FSpOpenResFile(destname, WRITE) +		output = FSpOpenResFile(dest_fss, WRITE)  	# Copy the resources from the template -	input = FSpOpenResFile(template, READ) +	input = FSpOpenResFile(template_fss, READ)  	newctor = copyres(input, output)  	CloseResFile(input)  	if newctor: ctor = newctor @@ -149,9 +152,13 @@ def process(template, filename, output):  		CloseResFile(input)  		if newctor: ctor = newctor -	# Now set the creator and type of the destination -	 -	MacOS.SetCreatorAndType(destname, ctor, type) +	# Now set the creator, type and bundle bit of the destination +	dest_finfo = dest_fss.GetFInfo() +	dest_finfo.Creator = ctor +	dest_finfo.Type = type +	dest_finfo.Flags = dest_finfo.Flags | MACFS.kHasBundle +	dest_finfo.Flags = dest_finfo.Flags & ~MACFS.kHasBeenInited +	dest_fss.SetFInfo(dest_finfo)  	# Make sure we're manipulating the output resource file now  | 
