在 Mac 上以编程方式为 "Open with..." 构建应用程序

Programmatically building applications for "Open with..." on Mac

我想创建一个程序,它使用我的程序用户提供的某些信息,并将这些信息烘焙到可执行文件中,这些可执行文件可与 Mac 的 "Open with..." 一起使用。

由于 bash 脚本不能直接用于 Mac 的 "Open with..." 功能1,但是,我想找到一种方法来包装这样的脚本(尽可能无痛)。

我知道 Automator 允许构建包含 bash 脚本并使用 "Open with..." 的应用程序,但我希望能够 以编程方式 构建脚本和包含的应用程序(我还没有发现 Automator 可以接受命令行参数来编写应用程序)。

有哪些简单、最不常见的 denominator/open 格式方法(不使用 Python 等),我可以通过这些方法(最好是可以在 Linux 上工作的方式)还有)?

我发现我能够使用 osacompile(或者显然也可能使用 Apple 的 JavaScript)以编程方式构建一个 AppleScript 应用程序,使用 on open 侦听器来侦听 "Open with..." 、默认文件关联或拖动文件(包括放置在停靠栏上时)和一个 on run 侦听器来处理命令行调用。然后我可以在内部使用 do shell script 来调用我想要的文件(在我的例子中,使用 Node 脚本和一些参数调用 Node.js 二进制文件)。

我还能够 try/on error 检查输入,如果存在 none 则执行 choose file with prompt(特别是 choose file with prompt "Prompt message" of type {"js"} 用于 JS 文件),以便应用程序可以 double-clicked 没有文件参数但会触发文件对话框(例如,用于扩展坞)。