Kaydet (Commit) df976caa authored tarafından Jack Jansen's avatar Jack Jansen

Use new file dialogs.

üst db5ab804
"""checktext - Check that a text file has macintosh-style newlines""" """checktext - Check that a text file has macintosh-style newlines"""
import macfs
import sys import sys
import EasyDialogs import EasyDialogs
import string import string
def main(): def main():
fsspec, ok = macfs.PromptGetFile('File to check end-of-lines in:', 'TEXT') pathname = EasyDialogs.AskFileForOpen(message='File to check end-of-lines in:')
if not ok: if not pathname:
sys.exit(0) sys.exit(0)
pathname = fsspec.as_pathname()
fp = open(pathname, 'rb') fp = open(pathname, 'rb')
try: try:
data = fp.read() data = fp.read()
......
...@@ -11,7 +11,6 @@ import sys ...@@ -11,7 +11,6 @@ import sys
sys.stdout = sys.stderr sys.stdout = sys.stderr
import os import os
import macfs
import MacOS import MacOS
import EasyDialogs import EasyDialogs
import buildtools import buildtools
...@@ -36,7 +35,7 @@ def buildapplet(): ...@@ -36,7 +35,7 @@ def buildapplet():
if not sys.argv[1:]: if not sys.argv[1:]:
filename = EasyDialogs.AskFileForOpen(message='Select Python source or applet:', filename = EasyDialogs.AskFileForOpen(message='Select Python source or applet:',
fileTypes=('TEXT', 'APPL')) typeList=('TEXT', 'APPL'))
if not filename: if not filename:
return return
tp, tf = os.path.split(filename) tp, tf = os.path.split(filename)
...@@ -86,7 +85,7 @@ def buildapplet(): ...@@ -86,7 +85,7 @@ def buildapplet():
verbose = 'default' verbose = 'default'
# Loop over all files to be processed # Loop over all files to be processed
for filename in args: for filename in args:
cr, tp = MacOS.GetCreatorAndType(macfs.FSRef(filename)) cr, tp = MacOS.GetCreatorAndType(filename)
if tp == 'APPL': if tp == 'APPL':
buildtools.update(template, filename, dstfilename) buildtools.update(template, filename, dstfilename)
else: else:
......
...@@ -7,29 +7,29 @@ Reading and understanding this code is left as an exercise to the reader. ...@@ -7,29 +7,29 @@ Reading and understanding this code is left as an exercise to the reader.
""" """
import MacOS import MacOS
import EasyDialogs
import os import os
import string import string
import sys import sys
import types import types
import StringIO import StringIO
import macfs
import keyword import keyword
import macresource import macresource
from aetools import unpack from aetools import unpack
from Carbon.Res import * from Carbon.Res import *
DEFAULT_PACKAGEFOLDER=os.path.join(sys.prefix, 'Mac', 'Lib', 'lib-scriptpackages') DEFAULT_PACKAGEFOLDER=os.path.join(sys.prefix, 'Lib', 'plat-mac', 'lib-scriptpackages')
def main(): def main():
if len(sys.argv) > 1: if len(sys.argv) > 1:
for filename in sys.argv[1:]: for filename in sys.argv[1:]:
processfile(filename) processfile(filename)
else: else:
fss, ok = macfs.PromptGetFile('Select file with aeut/aete resource:') filename = EasyDialogs.AskFileForOpen(message='Select file with aeut/aete resource:')
if not ok: if not filename:
sys.exit(0) sys.exit(0)
processfile(fss.as_pathname()) processfile(filename)
def processfile(fullname): def processfile(fullname):
"""Process all resources in a single file""" """Process all resources in a single file"""
...@@ -231,8 +231,7 @@ def compileaete(aete, resinfo, fname): ...@@ -231,8 +231,7 @@ def compileaete(aete, resinfo, fname):
"""Generate code for a full aete resource. fname passed for doc purposes""" """Generate code for a full aete resource. fname passed for doc purposes"""
[version, language, script, suites] = aete [version, language, script, suites] = aete
major, minor = divmod(version, 256) major, minor = divmod(version, 256)
fss = macfs.FSSpec(fname) creatorsignature, dummy = MacOS.GetCreatorAndType(fname)
creatorsignature, dummy = fss.GetCreatorType()
packagename = identify(os.path.splitext(os.path.basename(fname))[0]) packagename = identify(os.path.splitext(os.path.basename(fname))[0])
if language: if language:
packagename = packagename+'_lang%d'%language packagename = packagename+'_lang%d'%language
...@@ -240,39 +239,39 @@ def compileaete(aete, resinfo, fname): ...@@ -240,39 +239,39 @@ def compileaete(aete, resinfo, fname):
packagename = packagename+'_script%d'%script packagename = packagename+'_script%d'%script
if len(packagename) > 27: if len(packagename) > 27:
packagename = packagename[:27] packagename = packagename[:27]
macfs.SetFolder(DEFAULT_PACKAGEFOLDER) pathname = EasyDialogs.AskFolder(message='Create and select package folder for %s'%packagename,
fss, ok = macfs.GetDirectory('Create and select package folder for %s'%packagename) defaultLocation=DEFAULT_PACKAGEFOLDER)
if not ok: if not pathname:
return return
pathname = fss.as_pathname()
packagename = os.path.split(os.path.normpath(pathname))[1] packagename = os.path.split(os.path.normpath(pathname))[1]
fss, ok = macfs.GetDirectory('Package folder for base suite (usually StdSuites)') basepkgname = EasyDialogs.AskFolder(message='Package folder for base suite (usually StdSuites)',
if ok: defaultLocation=DEFAULT_PACKAGEFOLDER)
dirname, basepkgname = os.path.split(os.path.normpath(fss.as_pathname())) if basepkgname:
dirname, basepkgname = os.path.split(os.path.normpath(basepkgname))
if not dirname in sys.path: if not dirname in sys.path:
sys.path.insert(0, dirname) sys.path.insert(0, dirname)
basepackage = __import__(basepkgname) basepackage = __import__(basepkgname)
else: else:
basepackage = None basepackage = None
macfs.SetFolder(pathname)
suitelist = [] suitelist = []
allprecompinfo = [] allprecompinfo = []
allsuites = [] allsuites = []
for suite in suites: for suite in suites:
code, suite, fss, modname, precompinfo = precompilesuite(suite, basepackage) code, suite, pathname, modname, precompinfo = precompilesuite(suite, basepackage)
if not code: if not code:
continue continue
allprecompinfo = allprecompinfo + precompinfo allprecompinfo = allprecompinfo + precompinfo
suiteinfo = suite, fss, modname suiteinfo = suite, pathname, modname
suitelist.append((code, modname)) suitelist.append((code, modname))
allsuites.append(suiteinfo) allsuites.append(suiteinfo)
for suiteinfo in allsuites: for suiteinfo in allsuites:
compilesuite(suiteinfo, major, minor, language, script, fname, basepackage, allprecompinfo) compilesuite(suiteinfo, major, minor, language, script, fname, basepackage, allprecompinfo)
fss, ok = macfs.StandardPutFile('Package module', '__init__.py') initfilename = EasyDialogs.AskFileForSave(message='Package module',
if not ok: savedFileName='__init__.py')
if not initfilename:
return return
fp = open(fss.as_pathname(), 'w') fp = open(initfilename, 'w')
fss.SetCreatorType('Pyth', 'TEXT') MacOS.SetCreatorAndType(initfilename, 'Pyth', 'TEXT')
fp.write('"""\n') fp.write('"""\n')
fp.write("Package generated from %s\n"%fname) fp.write("Package generated from %s\n"%fname)
if resinfo: if resinfo:
...@@ -339,11 +338,11 @@ def precompilesuite(suite, basepackage=None): ...@@ -339,11 +338,11 @@ def precompilesuite(suite, basepackage=None):
modname = identify(name) modname = identify(name)
if len(modname) > 28: if len(modname) > 28:
modname = modname[:27] modname = modname[:27]
fss, ok = macfs.StandardPutFile('Python output file', modname+'.py') pathname = EasyDialogs.AskFileForSave(message='Python output file',
if not ok: savedFileName=modname+'.py')
if not pathname:
return None, None, None, None, None return None, None, None, None, None
pathname = fss.as_pathname()
modname = os.path.splitext(os.path.split(pathname)[1])[0] modname = os.path.splitext(os.path.split(pathname)[1])[0]
if basepackage and basepackage._code_to_module.has_key(code): if basepackage and basepackage._code_to_module.has_key(code):
...@@ -375,15 +374,14 @@ def precompilesuite(suite, basepackage=None): ...@@ -375,15 +374,14 @@ def precompilesuite(suite, basepackage=None):
precompinfo = objc.getprecompinfo(modname) precompinfo = objc.getprecompinfo(modname)
return code, suite, fss, modname, precompinfo return code, suite, pathname, modname, precompinfo
def compilesuite((suite, fss, modname), major, minor, language, script, fname, basepackage, precompinfo): def compilesuite((suite, pathname, modname), major, minor, language, script, fname, basepackage, precompinfo):
"""Generate code for a single suite""" """Generate code for a single suite"""
[name, desc, code, level, version, events, classes, comps, enums] = suite [name, desc, code, level, version, events, classes, comps, enums] = suite
pathname = fss.as_pathname() fp = open(pathname, 'w')
fp = open(fss.as_pathname(), 'w') MacOS.SetCreatorAndType(pathname, 'Pyth', 'TEXT')
fss.SetCreatorType('Pyth', 'TEXT')
fp.write('"""Suite %s: %s\n' % (ascii(name), ascii(desc))) fp.write('"""Suite %s: %s\n' % (ascii(name), ascii(desc)))
fp.write("Level %d, version %d\n\n" % (level, version)) fp.write("Level %d, version %d\n\n" % (level, version))
...@@ -676,9 +674,9 @@ class ObjectCompiler: ...@@ -676,9 +674,9 @@ class ObjectCompiler:
self.namemappers.append(mapper) self.namemappers.append(mapper)
def askdefinitionmodule(self, type, code): def askdefinitionmodule(self, type, code):
fss, ok = macfs.PromptGetFile('Where is %s %s declared?'%(type, code)) path = EasyDialogs.AskFileForSave(message='Where is %s %s declared?'%(type, code))
if not ok: return if not path: return
path, file = os.path.split(fss.as_pathname()) path, file = os.path.split(path)
modname = os.path.splitext(file)[0] modname = os.path.splitext(file)[0]
if not path in sys.path: if not path in sys.path:
sys.path.insert(0, path) sys.path.insert(0, path)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment