diff options
author | Jack Jansen <jack.jansen@cwi.nl> | 1998-02-20 16:06:56 (GMT) |
---|---|---|
committer | Jack Jansen <jack.jansen@cwi.nl> | 1998-02-20 16:06:56 (GMT) |
commit | 8554e302a5bf1732d99796ce0b58db2fd36a06a0 (patch) | |
tree | a125743f52a36f2eb03fefd0498c83880d159366 | |
parent | ebe914af7ab4886bf918245c47407e2397a0c658 (diff) | |
download | cpython-8554e302a5bf1732d99796ce0b58db2fd36a06a0.zip cpython-8554e302a5bf1732d99796ce0b58db2fd36a06a0.tar.gz cpython-8554e302a5bf1732d99796ce0b58db2fd36a06a0.tar.bz2 |
BuildApplet will now also update old applets
-rw-r--r-- | Mac/scripts/BuildApplet.py | 93 | ||||
-rw-r--r-- | Mac/scripts/BuildApplet.rsrc.hqx | 71 |
2 files changed, 96 insertions, 68 deletions
diff --git a/Mac/scripts/BuildApplet.py b/Mac/scripts/BuildApplet.py index b51eef1..77a5eda 100644 --- a/Mac/scripts/BuildApplet.py +++ b/Mac/scripts/BuildApplet.py @@ -67,7 +67,7 @@ def main(): # Ask for source text if not specified in sys.argv[1:] if not sys.argv[1:]: - srcfss, ok = macfs.PromptGetFile('Select Python source file:', 'TEXT') + srcfss, ok = macfs.PromptGetFile('Select Python source or applet:', 'TEXT', 'APPL') if not ok: return filename = srcfss.as_pathname() @@ -75,15 +75,24 @@ def main(): if tf[-3:] == '.py': tf = tf[:-3] else: - tf = tf + '.applet' + tf = tf + '.out' dstfss, ok = macfs.StandardPutFile('Save application as:', tf) if not ok: return - process(template, filename, dstfss.as_pathname()) + dstfilename = dstfss.as_pathname() + cr, tp = MacOS.GetCreatorAndType(filename) + if tp == 'APPL': + update(template, filename, dstfilename) + else: + process(template, filename, dstfilename) else: # Loop over all files to be processed for filename in sys.argv[1:]: - process(template, filename, '') + cr, tp = MacOS.GetCreatorAndType(filename) + if tp == 'APPL': + update(template, filename, '') + else: + process(template, filename, '') def process(template, filename, output): @@ -116,10 +125,23 @@ def process(template, filename, output): if output: destname = output + + process_common(template, progress, code, rsrcname, destname, 0) + +def update(template, filename, output): + if DEBUG: + progress = EasyDialogs.ProgressBar("Updating %s..."%os.path.split(filename)[1], 120) + else: + progress = None + if not output: + output = filename + ' (updated)' + process_common(template, progress, None, filename, output, 1) + +def process_common(template, progress, code, rsrcname, destname, is_update): # Try removing the output file try: - os.unlink(output) + os.unlink(destname) except os.error: pass @@ -163,7 +185,11 @@ def process(template, filename, output): if DEBUG: progress.inc(50) else: - typesfound, ownertype = copyres(input, output, [], 0, progress) + if is_update: + skip_oldfile = ['cfrg'] + else: + skip_oldfile = [] + typesfound, ownertype = copyres(input, output, skip_oldfile, 0, progress) CloseResFile(input) # Check which resource-types we should not copy from the template @@ -195,32 +221,33 @@ def process(template, filename, output): UseResFile(output) - # Delete any existing 'PYC ' resource named __main__ - - try: - res = Get1NamedResource(RESTYPE, RESNAME) - res.RemoveResource() - except Error: - pass - - # Create the raw data for the resource from the code object - if DEBUG: - progress.label("Write PYC resource...") - progress.set(120) - - data = marshal.dumps(code) - del code - data = (MAGIC + '\0\0\0\0') + data - - # Create the resource and write it + if code: + # Delete any existing 'PYC ' resource named __main__ + + try: + res = Get1NamedResource(RESTYPE, RESNAME) + res.RemoveResource() + except Error: + pass - id = 0 - while id < 128: - id = Unique1ID(RESTYPE) - res = Resource(data) - res.AddResource(RESTYPE, id, RESNAME) - res.WriteResource() - res.ReleaseResource() + # Create the raw data for the resource from the code object + if DEBUG: + progress.label("Write PYC resource...") + progress.set(120) + + data = marshal.dumps(code) + del code + data = (MAGIC + '\0\0\0\0') + data + + # Create the resource and write it + + id = 0 + while id < 128: + id = Unique1ID(RESTYPE) + res = Resource(data) + res.AddResource(RESTYPE, id, RESNAME) + res.WriteResource() + res.ReleaseResource() # Close the output file @@ -252,8 +279,8 @@ def copyres(input, output, skiptypes, skipowner, progress=None): res = Get1IndResource(type, ires) id, type, name = res.GetResInfo() lcname = string.lower(name) - if (type, lcname) == (RESTYPE, RESNAME): - continue # Don't copy __main__ from template +## if (type, lcname) == (RESTYPE, RESNAME): +## continue # Don't copy __main__ from template # XXXX should look for id=0 if lcname == OWNERNAME: if skipowner: diff --git a/Mac/scripts/BuildApplet.rsrc.hqx b/Mac/scripts/BuildApplet.rsrc.hqx index cf0faaa..bbf1433 100644 --- a/Mac/scripts/BuildApplet.rsrc.hqx +++ b/Mac/scripts/BuildApplet.rsrc.hqx @@ -1,37 +1,38 @@ (This file must be converted with BinHex 4.0) -:%%*eD@aN3A"`E'9d,R*cFQ-!FR0bBe*6483"!*!(#bSMM`#3"!%!!!!++3!!#5N -!!!%"0K3J9#"S!"3J8(d4X'J4!$S"CbB5,`a1ZJ)-$$S!@RN0E@YKF("XCA3ZFR0 -bB`)!!!!rN!J!N!JrN!J!N"L`(eFK!*!'#bVr%F#SD3%G3"(rma0`!"!Zrr1pdK& -Q%&%f[P9V!3,fK[P9V!3%`86)"Caj%&3`!!"aP%R!!%#j$&3`!!"pL"R!"B!! -"!3)X@P3Y,N5p!3!E2!&Q-#G92KT+J#"6!LJ![`!Z)J$Y#3)"!%#$+0Xd%kRA,`a -1ZJ%*5QGV!3#Q9d-k!!!"!*!,3!!!!+!!!!&3!!!#U!!!"&3!!!NN!!!5P!!$rrm -!"!!!J!2rr`!"!!)!!3!#!!%!!`!"!!2J!3!$)!%!!L!"!!)J!rrr,J3!!,i$rrm -1!+`%!!'Z#!!"rK!!!"!J!!!)3!!!")!!!!-!N"K!!!!!i!!!!I!!!!2i!!!(r!! -!$r`!!"rm!!2rr`!(rrq!!rrr!!(rrJ!"rri!!Irr!!(rrq!"rrmJ!Irq)!(rrL! -$rrmZ"rrr[J2rr`i!rr`!!Iri!!(rm!!!(q!!!!r!!!!(J!!!!`#3%3T3i!!HK)! -!"k%J!!!!"d&38%`!N!C!!!!"!!+!"8!)3$ri%"!3(K!5%"-rq`iJ$N!#J!%!N!8 -"!!1!"m!2`$ri(r!IrKrb(r-rq`rJ$m!$J!%!N!8%!*"5r`#3([m!r`#3(2m!X!$ -r!*!Dr`#`!,!!r`#3'2m!!!#`!2m&r`#3&[m!!,!!!2m&"Im!N"Ar!!#`!,!!!2m -&r`#3%2q3%J#3$Im!!#X!+j!+q5[jqIm!N!hrN")!N!rr!!!VN!VjqIm!N"$r!!! -!+j!)qIRjr`#3%2m!!#Z3#[Rjrrm!N!rr!!!!+j!)qIRjrj!&!*!-r`!!+j!+qIR -rr`!!r`#3$2m!!!!VN!MjqIRr!!!!r`#3$2m!!#Z3#[Rjr`!!!2m!N![rN")!!2m -!APjH!*!'r`!!+`!VN!Vj+rRjr`$rrejHAJ#3"rq3%J#3"&jHAJ#3#E!&X!@`X2N -VN!Ajr`#3%E#`"E!&X,#`q5XV+rRr!*!5X*!)q5XVqIm!N"IrqC!%+rRr!*!CrrN -V+rRr!*!ErrRjr`#3(Irr!*"b!J#3+3m!N!r`m!#3$3m&$`#3$I"382!!N!X2!!8 -2(`#3#r!&!2%I!*!+$`"38!mI!*!)rj!*!*!'$`$!c*!&h0h`!*!'rj!*!*!($`$ --N!AGm!#3"`m!$-c-c-hGm!#3"`m!c*!&hIm!N!F2!!c-c-c0hIrrm!#3"3m!c*! -&hIm!m!#3"3m!$-c-c-hGm!$`!*!&$`$-N!AGm!$`!*!&rj!*!2#lX!!!$`$!c*! -&h0h`rlZ`!!!!rj!*!!#lX!#3"&&49Gc-c0m!N!J&89&9AFc0m!#3#!99999Gc0m -!N!X2hGh0m!#3$2h-h`#3$3rGm!#3$[m!N$S"!*!Br`#3$[m!r`#3$2m!X!$r!*! -+r`#3"2m&!*!(rj!,!*!'r`!VN!Ajr`#3"rm!+j!&qIq3"!#3"2m!+j!&qIm!!2m -!N!6r!#Z3"IRr!!"HAJ!!rj!,!&jH!*!%X,#`+b[jr`#3#E#`X#[jr`#3$2rjr`# -3$[m!N"Z!!*!,$`#3"r$`!*!&$`82!*!&m!!2%!!!!2q3"I!!!!m-c-cI!!!!$`c --c0rrm!!2$-c-h`$`!!m-c-cI!,X!rj!&m,X!!&9FcI!!N!49A0m!N!Epm!#3"Jm -!N!m(9%9B9!!"!*!%*&"jG$%!!!!"4P*&4J!"!!!!J!!"!)&*3diM!!%!!!%X!!% -!N!8"!!!!!3!!!!ST!!!*+3!!!3%"`GTX%pB!!!!F!2)!#8*14%`!!!"55801)`! -!!&j659T&!!!!DNC548B!!3"fD@0c)`!!!)jTBf`i!!!!QQPME$3!!!#QD@0c1!! -!!,*TBh-d!!!![P"jG$%!!!$+!)$rr`!!#2`"`Hj8!5crr`#3"!("m%6rN!3!!!% -%!*!&J2rr!!!"%J("lYJ!JIrr!!!)m3("m%J",2rr!!!"(3("llJ",2rr!!!"B3( -"lQ3",2rr!!!&C3("leJ",2rr!!!(D3("m"3",2rr!!!)E3("lS!!N!B**!("lr! -16hGZCA)JFQ9cEh9bBf@kGJ: +:%%*eD@aN3A"`E'9d,R*cFQ-!FR0bBe*6483"!*!(#dPr5J#3"!%!!!!+2!!!#6` +!!!%00K3J9#"S!"3J8(d4X'J4!$S"CbB5,`a1ZJ)-$$S!@RN33R9TE'4"F("XCA3 +ZFR0bBf0PFh&iBbjSFAJZ1'*XE!!!FR0bBe*6483"!!"!!!%!N!m"Al1`(eFK!*! +'#bVr%F#SD3%G3"(rma0`!"!Zrr1pdK&Q%&%f[P9V!3,fK[P9V!3%`86)"Caj +%&3`!!"aP%R!!%#j$&3`!!"pL"R!"B!!"!3)X@P3Y,N5p!3!E2!&Q-#G92KT+J#" +6!LJ![`!Z)J$Y#3)"!%#$+0Xd%kRA,`a1ZJ%*5QGV!3#Q9d-k!!!"!*!,3!!!!+! +!!!&3!!!#U!!!"&3!!!NN!!!5P!!$rrm!"!!!J!2rr`!"!!)!!3!#!!%!!`!"!!2 +J!3!$)!%!!L!"!!)J!rrr,J3!!,i$rrm1!+`%!!'Z#!!"rK!!!"!J!!!)3!!!")! +!!!-!N"K!!!!!i!!!!I!!!!2i!!!(r!!!$r`!!"rm!!2rr`!(rrq!!rrr!!(rrJ! +"rri!!Irr!!(rrq!"rrmJ!Irq)!(rrL!$rrmZ"rrr[J2rr`i!rr`!!Iri!!(rm!! +!(q!!!!r!!!!(J!!!!`#3%3T3i!!HK)!!"k%J!!!!"d&38%`!N!C!!!!"!!+!"8! +)3$ri%"!3(K!5%"-rq`iJ$N!#J!%!N!8"!!1!"m!2`$ri(r!IrKrb(r-rq`rJ$m! +$J!%!N!8%!*"5r`#3([m!r`#3(2m!X!$r!*!Dr`#`!,!!r`#3'2m!!!#`!2m&r`# +3&[m!!,!!!2m&"Im!N"Ar!!#`!,!!!2m&r`#3%2q3%J#3$Im!!#X!+j!+q5[jqIm +!N!hrN")!N!rr!!!VN!VjqIm!N"$r!!!!+j!)qIRjr`#3%2m!!#Z3#[Rjrrm!N!r +r!!!!+j!)qIRjrj!&!*!-r`!!+j!+qIRrr`!!r`#3$2m!!!!VN!MjqIRr!!!!r`# +3$2m!!#Z3#[Rjr`!!!2m!N![rN")!!2m!APjH!*!'r`!!+`!VN!Vj+rRjr`$rrej +HAJ#3"rq3%J#3"&jHAJ#3#E!&X!@`X2NVN!Ajr`#3%E#`"E!&X,#`q5XV+rRr!*! +5X*!)q5XVqIm!N"IrqC!%+rRr!*!CrrNV+rRr!*!ErrRjr`#3(Irr!*"b!J#3+3m +!N!r`m!#3$3m&$`#3$I"382!!N!X2!!82(`#3#r!&!2%I!*!+$`"38!mI!*!)rj! +*!*!'$`$!c*!&h0h`!*!'rj!*!*!($`$-N!AGm!#3"`m!$-c-c-hGm!#3"`m!c*! +&hIm!N!F2!!c-c-c0hIrrm!#3"3m!c*!&hIm!m!#3"3m!$-c-c-hGm!$`!*!&$`$ +-N!AGm!$`!*!&rj!*!2#lX!!!$`$!c*!&h0h`rlZ`!!!!rj!*!!#lX!#3"&&49Gc +-c0m!N!J&89&9AFc0m!#3#!99999Gc0m!N!X2hGh0m!#3$2h-h`#3$3rGm!#3$[m +!N$S"!*!Br`#3$[m!r`#3$2m!X!$r!*!+r`#3"2m&!*!(rj!,!*!'r`!VN!Ajr`# +3"rm!+j!&qIq3"!#3"2m!+j!&qIm!!2m!N!6r!#Z3"IRr!!"HAJ!!rj!,!&jH!*! +%X,#`+b[jr`#3#E#`X#[jr`#3$2rjr`#3$[m!N"Z!!*!,$`#3"r$`!*!&$`82!*! +&m!!2%!!!!2q3"I!!!!m-c-cI!!!!$`c-c0rrm!!2$-c-h`$`!!m-c-cI!,X!rj! +&m,X!!&9FcI!!N!49A0m!N!Epm!#3"Jm!N!m(9%9B9!!"!*!%!3#3"!FUN!3!!J# +3"#a3HA3a!!!!!8C548B!!J!!!)!!!3#"!!)!JNP$6L-!!J!!!5`!!3!!!!)!N!3 +"!!!!#M`!!!Nm!!!"$3FdRi3RUJ!!!"`!rJ!*3Nj%6!!!!&**3diM!!!!AP0*@N8 +!!!"U4P*&4J!#!(CTBh-M!!!!QQPME$J!!!#QD@0X0!!!!,*TBh-i!!!![QPMFc3 +!!!$+8(Pd-3!!!0B!J2rr!!!*$!FdR-!",2rr!*!%"c5G$2q3"!!!!33!N!@!rrm +!!!%5"c5G#!#"rrm!!!Ma"c5G"!##rrm!!!N""c5FV!%Xrrm!!!%G"c5FZ!%Xrrm +!!!&K"c5F[!%Xrrm!!!9P"c5Fb!%Xrrm!!!GT"c5FY!%Xrrm!!!KY"c5Fa!#3"JM +m"c5G!!j2GfjPFL"bCA0[GA*MCE4F: |