add uti-exports support (thanks to Dave Gurnell for help)
svn: r10129
This commit is contained in:
parent
5fbc3dbced
commit
7c3962720e
|
@ -142,6 +142,10 @@
|
||||||
(and m
|
(and m
|
||||||
(pair? (cdr m))
|
(pair? (cdr m))
|
||||||
(cdr m)))]
|
(cdr m)))]
|
||||||
|
[uti-exports (let ([m (assq 'uti-exports aux)])
|
||||||
|
(and m
|
||||||
|
(pair? (cdr m))
|
||||||
|
(cdr m)))]
|
||||||
[resource-files (let ([m (assq 'resource-files aux)])
|
[resource-files (let ([m (assq 'resource-files aux)])
|
||||||
(and m
|
(and m
|
||||||
(cdr m)))])
|
(cdr m)))])
|
||||||
|
@ -212,10 +216,25 @@
|
||||||
|
|
||||||
"CFBundleIdentifier"
|
"CFBundleIdentifier"
|
||||||
(format "org.plt-scheme.~a" (path->string name)))]
|
(format "org.plt-scheme.~a" (path->string name)))]
|
||||||
|
[new-plist (if uti-exports
|
||||||
|
(plist-replace
|
||||||
|
new-plist
|
||||||
|
"UTExportedTypeDeclarations"
|
||||||
|
(cons 'array
|
||||||
|
(map (lambda (spec)
|
||||||
|
(cons
|
||||||
|
'dict
|
||||||
|
(map (lambda (p)
|
||||||
|
(list
|
||||||
|
'assoc-pair
|
||||||
|
(car p)
|
||||||
|
(cadr p)))
|
||||||
|
spec)))
|
||||||
|
uti-exports)))
|
||||||
|
new-plist)]
|
||||||
[new-plist (if file-types
|
[new-plist (if file-types
|
||||||
(plist-replace
|
(plist-replace
|
||||||
new-plist
|
new-plist
|
||||||
|
|
||||||
"CFBundleDocumentTypes"
|
"CFBundleDocumentTypes"
|
||||||
(cons 'array
|
(cons 'array
|
||||||
(map (lambda (spec)
|
(map (lambda (spec)
|
||||||
|
@ -228,7 +247,6 @@
|
||||||
(cadr p)))
|
(cadr p)))
|
||||||
spec)))
|
spec)))
|
||||||
file-types)))
|
file-types)))
|
||||||
|
|
||||||
new-plist)])
|
new-plist)])
|
||||||
(call-with-output-file (build-path dest
|
(call-with-output-file (build-path dest
|
||||||
"Contents"
|
"Contents"
|
||||||
|
|
15
collects/drscheme/drscheme.utiexports
Normal file
15
collects/drscheme/drscheme.utiexports
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
((("UTTypeConformsTo"
|
||||||
|
(array
|
||||||
|
"public.text"
|
||||||
|
"public.plain-text"))
|
||||||
|
("UTTypeDescription"
|
||||||
|
"PLT Scheme program source")
|
||||||
|
("UTTypeIdentifier"
|
||||||
|
"org.plt-scheme.source")
|
||||||
|
("UTTypeTagSpecification"
|
||||||
|
(dict
|
||||||
|
(assoc-pair "com.apple.ostype"
|
||||||
|
"TEXT")
|
||||||
|
(assoc-pair "public.filename-extension"
|
||||||
|
(array "ss"
|
||||||
|
"scm"))))))
|
|
@ -582,7 +582,16 @@
|
||||||
d))])
|
d))])
|
||||||
(list
|
(list
|
||||||
(cons 'file-types d)
|
(cons 'file-types d)
|
||||||
(cons 'resource-files icon-files))))))))))))))
|
(cons 'resource-files icon-files))))))))))
|
||||||
|
(let ([l (try 'file-types #".utiexports")])
|
||||||
|
(if (null? l)
|
||||||
|
l
|
||||||
|
(with-handlers ([exn:fail:filesystem? (lambda (x) null)])
|
||||||
|
(with-input-from-file (cdar l)
|
||||||
|
(lambda ()
|
||||||
|
(let ([d (read)])
|
||||||
|
(list
|
||||||
|
(cons 'uti-exports d))))))))))))
|
||||||
|
|
||||||
(define (make-mred-program-launcher file collection dest)
|
(define (make-mred-program-launcher file collection dest)
|
||||||
(make-mred-launcher (list "-l-" (string-append collection "/" file))
|
(make-mred-launcher (list "-l-" (string-append collection "/" file))
|
||||||
|
|
|
@ -148,7 +148,8 @@ distribution that contains the executable).
|
||||||
The optional @scheme[#:aux] argument is an association list for
|
The optional @scheme[#:aux] argument is an association list for
|
||||||
platform-specific options (i.e., it is a list of pairs where the first
|
platform-specific options (i.e., it is a list of pairs where the first
|
||||||
element of the pair is a key symbol and the second element is the
|
element of the pair is a key symbol and the second element is the
|
||||||
value for that key). The currently supported keys are as follows:
|
value for that key). See also @scheme[build-aux-from-path]. The
|
||||||
|
currently supported keys are as follows:
|
||||||
|
|
||||||
@itemize{
|
@itemize{
|
||||||
|
|
||||||
|
@ -169,8 +170,17 @@ value for that key). The currently supported keys are as follows:
|
||||||
association lists, one for each type of file handled by the
|
association lists, one for each type of file handled by the
|
||||||
application; each association is a two-element list, where the
|
application; each association is a two-element list, where the
|
||||||
first (key) element is a string recognized by Finder, and the
|
first (key) element is a string recognized by Finder, and the
|
||||||
second element is a plist value. See
|
second element is a plist value (see
|
||||||
@filepath{drscheme.filetypes} in the @filepath{drscheme}
|
@schememodname[xml/plist]). See @filepath{drscheme.filetypes}
|
||||||
|
in the @filepath{drscheme} collection for an example.}
|
||||||
|
|
||||||
|
@item{@scheme['uti-exports] (Mac OS X) : Provides a list of
|
||||||
|
association lists, one for each @as-index{Uniform Type
|
||||||
|
Identifier} (UTI) exported by the executable; each association
|
||||||
|
is a two-element list, where the first (key) element is a
|
||||||
|
string recognized in a UTI declaration, and the second element
|
||||||
|
is a plist value (see @schememodname[xml/plist]). See
|
||||||
|
@filepath{drscheme.utiexports} in the @filepath{drscheme}
|
||||||
collection for an example.}
|
collection for an example.}
|
||||||
|
|
||||||
@item{@scheme['resource-files] (Mac OS X) : extra files to copy into
|
@item{@scheme['resource-files] (Mac OS X) : extra files to copy into
|
||||||
|
@ -225,9 +235,6 @@ value for that key). The currently supported keys are as follows:
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
See also @scheme[build-aux-from-path]. The default @scheme[aux] is
|
|
||||||
@scheme[null].
|
|
||||||
|
|
||||||
If the @scheme[#:collects-path] argument is @scheme[#f], then the
|
If the @scheme[#:collects-path] argument is @scheme[#f], then the
|
||||||
created executable maintains its built-in (relative) path to the main
|
created executable maintains its built-in (relative) path to the main
|
||||||
@filepath{collects} directory---which will be the result of
|
@filepath{collects} directory---which will be the result of
|
||||||
|
|
|
@ -38,10 +38,10 @@ or directory, it is replaced.
|
||||||
The optional @scheme[aux] argument is an association list for
|
The optional @scheme[aux] argument is an association list for
|
||||||
platform-specific options (i.e., it is a list of pairs where the first
|
platform-specific options (i.e., it is a list of pairs where the first
|
||||||
element of the pair is a key symbol and the second element is the
|
element of the pair is a key symbol and the second element is the
|
||||||
value for that key). See @scheme[create-embedding-executable] for a
|
value for that key). See also @scheme[build-aux-from-path]. See
|
||||||
list that applies to both stand-alone executables and launchers under
|
@scheme[create-embedding-executable] for a list that applies to both
|
||||||
Windows and Mac OS X MrEd; the following additional associations apply
|
stand-alone executables and launchers under Windows and Mac OS X MrEd;
|
||||||
to launchers:
|
the following additional associations apply to launchers:
|
||||||
|
|
||||||
@itemize{
|
@itemize{
|
||||||
|
|
||||||
|
@ -62,8 +62,6 @@ to launchers:
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
See also @scheme[build-aux-from-path].
|
|
||||||
|
|
||||||
For Unix/X, the script created by @scheme[make-mred-launcher] detects
|
For Unix/X, the script created by @scheme[make-mred-launcher] detects
|
||||||
and handles X Windows flags specially when they appear as the initial
|
and handles X Windows flags specially when they appear as the initial
|
||||||
arguments to the script. Instead of appending these arguments to the
|
arguments to the script. Instead of appending these arguments to the
|
||||||
|
@ -263,6 +261,10 @@ The recognized suffixes are as follows:
|
||||||
@scheme["CFBundleTypeIconFile"] entries in
|
@scheme["CFBundleTypeIconFile"] entries in
|
||||||
@scheme['file-types]; for use under Mac OS X}
|
@scheme['file-types]; for use under Mac OS X}
|
||||||
|
|
||||||
|
@item{@filepath{.utiexports} @'rarr @scheme['uti-exports] as
|
||||||
|
@scheme[read] content (a single S-expression); for use under
|
||||||
|
Mac OS X}
|
||||||
|
|
||||||
}}
|
}}
|
||||||
|
|
||||||
@defparam[current-launcher-variant variant symbol?]{
|
@defparam[current-launcher-variant variant symbol?]{
|
||||||
|
|
Loading…
Reference in New Issue
Block a user