def processfile_fromresource(fullname, output=None, basepkgname=None, edit_modnames=None, creatorsignature=None, dump=None, verbose=None): """Process all resources in a single file""" if not is_scriptable(fullname) and verbose: print >> verbose, 'Warning: app does not seem scriptable: %s' % fullname cur = CurResFile() if verbose: print >> verbose, 'Processing', fullname rf = macresource.open_pathname(fullname) try: UseResFile(rf) resources = [] for i in range(Count1Resources('aete')): res = Get1IndResource('aete', 1 + i) resources.append(res) for i in range(Count1Resources('aeut')): res = Get1IndResource('aeut', 1 + i) resources.append(res) if verbose: print >> verbose, '\nLISTING aete+aeut RESOURCES IN', repr( fullname) aetelist = [] for res in resources: if verbose: print >> verbose, 'decoding', res.GetResInfo(), '...' data = res.data aete = decode(data, verbose) aetelist.append((aete, res.GetResInfo())) finally: if rf != cur: CloseResFile(rf) UseResFile(cur) UseResFile(cur) if dump: dumpaetelist(aetelist, dump) compileaetelist(aetelist, fullname, output=output, basepkgname=basepkgname, edit_modnames=edit_modnames, creatorsignature=creatorsignature, verbose=verbose)
def processfile_fromresource( fullname, output=None, basepkgname=None, edit_modnames=None, creatorsignature=None, dump=None, verbose=None ): """Process all resources in a single file""" if not is_scriptable(fullname) and verbose: print >> verbose, "Warning: app does not seem scriptable: %s" % fullname cur = CurResFile() if verbose: print >> verbose, "Processing", fullname rf = macresource.open_pathname(fullname) try: UseResFile(rf) resources = [] for i in range(Count1Resources("aete")): res = Get1IndResource("aete", 1 + i) resources.append(res) for i in range(Count1Resources("aeut")): res = Get1IndResource("aeut", 1 + i) resources.append(res) if verbose: print >> verbose, "\nLISTING aete+aeut RESOURCES IN", repr(fullname) aetelist = [] for res in resources: if verbose: print >> verbose, "decoding", res.GetResInfo(), "..." data = res.data aete = decode(data, verbose) aetelist.append((aete, res.GetResInfo())) finally: if rf <> cur: CloseResFile(rf) UseResFile(cur) # switch back (needed for dialogs in Python) UseResFile(cur) if dump: dumpaetelist(aetelist, dump) compileaetelist( aetelist, fullname, output=output, basepkgname=basepkgname, edit_modnames=edit_modnames, creatorsignature=creatorsignature, verbose=verbose, )
def is_scriptable(application): """Return true if the application is scriptable""" if os.path.isdir(application): plistfile = os.path.join(application, 'Contents', 'Info.plist') if not os.path.exists(plistfile): return False plist = plistlib.Plist.fromFile(plistfile) return plist.get('NSAppleScriptEnabled', False) currf = CurResFile() try: refno = macresource.open_pathname(application) except MacOS.Error: return False UseResFile(refno) n_terminology = Count1Resources('aete') + Count1Resources('aeut') + Count1Resources('scsz') + Count1Resources('osiz') CloseResFile(refno) UseResFile(currf) return n_terminology > 0
def is_scriptable(application): """Return true if the application is scriptable""" if os.path.isdir(application): plistfile = os.path.join(application, "Contents", "Info.plist") if not os.path.exists(plistfile): return False plist = plistlib.Plist.fromFile(plistfile) return plist.get("NSAppleScriptEnabled", False) # If it is a file test for an aete/aeut resource. currf = CurResFile() try: refno = macresource.open_pathname(application) except MacOS.Error: return False UseResFile(refno) n_terminology = ( Count1Resources("aete") + Count1Resources("aeut") + Count1Resources("scsz") + Count1Resources("osiz") ) CloseResFile(refno) UseResFile(currf) return n_terminology > 0
def processfile_fromresource(fullname, output = None, basepkgname = None, edit_modnames = None, creatorsignature = None, dump = None, verbose = None): """Process all resources in a single file""" if not is_scriptable(fullname) and verbose: print >> verbose, 'Warning: app does not seem scriptable: %s' % fullname cur = CurResFile() if verbose: print >> verbose, 'Processing', fullname rf = macresource.open_pathname(fullname) try: UseResFile(rf) resources = [] for i in range(Count1Resources('aete')): res = Get1IndResource('aete', 1 + i) resources.append(res) for i in range(Count1Resources('aeut')): res = Get1IndResource('aeut', 1 + i) resources.append(res) if verbose: print >> verbose, '\nLISTING aete+aeut RESOURCES IN', repr(fullname) aetelist = [] for res in resources: if verbose: print >> verbose, 'decoding', res.GetResInfo(), '...' data = res.data aete = decode(data, verbose) aetelist.append((aete, res.GetResInfo())) finally: if rf != cur: CloseResFile(rf) UseResFile(cur) UseResFile(cur) if dump: dumpaetelist(aetelist, dump) compileaetelist(aetelist, fullname, output=output, basepkgname=basepkgname, edit_modnames=edit_modnames, creatorsignature=creatorsignature, verbose=verbose)
import os import sys import getopt class NoArgsError(Exception): pass def handler((verbose, force), dirname, fnames): for fn in fnames: if fn[-5:] == '.rsrc' and fn[-13:] != '.rsrc.df.rsrc': if force: try: os.unlink(os.path.join(dirname, fn + '.df.rsrc')) except IOError: pass macresource.open_pathname(os.path.join(dirname, fn), verbose=verbose) def main(): try: opts, args = getopt.getopt(sys.argv[1:], 'vf') if not args: raise NoArgsError except (getopt.GetoptError, NoArgsError): sys.stderr.write('Usage: cachersrc.py dirname ...\n') sys.exit(1) verbose = 0 force = 0 for o, v in opts: if o == '-v': verbose = 1 if o == '-f':
if not MacOS.WMAvailable(): raise 'No access to the window manager' progdir = os.path.split(sys.argv[0])[0] # This is cmif:build:macosx if not progdir: progdir = os.getcwd() ID_SPLASH_DIALOG = 513 # Assure the resource file is available from Carbon import Res try: Res.GetResource('DLOG', ID_SPLASH_DIALOG) except: import macresource macdir = os.path.join(os.path.split(progdir)[0], 'mac') macresource.open_pathname(os.path.join(macdir, 'player.rsrc'), 1) macresource.open_pathname(os.path.join(macdir, 'playercontrols.rsrc'), 1) macresource.open_pathname(os.path.join(macdir, 'common.rsrc'), 1) Res.GetResource('DLOG', ID_SPLASH_DIALOG) # Now time for real work. import string # # Set variable for standalone cmif: # try: import SR except ImportError: STANDALONE = 0 else: