Пример #1
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)
Пример #2
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)
    # 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,
    )
Пример #3
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)
    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
Пример #4
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
Пример #5
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)
Пример #6
0
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':
Пример #7
0
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: