逆コンパイルおよびコンパイルが可能で、スクリプト定義(sdef)を使用してAppleScriptスクリプトライブラリ(scptd)バージョン管理のソース。スクリプト定義(sdef)を使用してAppleScriptスクリプトライブラリ(scptd)をコンパイルする方法
この質問の背景は、AppleScriptソースをgit
に置くことです。私の質問のほとんどはthis stackoverflow question/answerで答えることができましたが、私の質問はここでも説明していますが、私のすべてのスクリプトをgitに入れることができません。このライブラリーtest.scptd
で
私は名前say it loud
を持つハンドラを持っている、とsdef
ファイルtest.sdef
では、コードSAYTLOUD
でコマンドとして宣言されています。 sdef
ファイルへのリンクが破損しているとsay it loud
ではないので
on say it loud whatToSay
do shell script "say " & quoted form of whatToSay
end on say it loud
しかし、このソースは、osacompile
してコンパイルすることはできません。osadecompile
を使用して、私はAppleScriptのテキストファイルtest.applescript
ます
有効な識別子。
幸いにも、優れたエディタTextMateの一部であるバイナリcompile_as(source here)が見つかりました。とき、逆コンパイルは、私は次のソースファイルtest_raw.applescript
取得:コードがまだ有効のAppleScriptであり、それは実行可能だから
on «event SAYTLOUD» whatToSay
do shell script "say " & quoted form of whatToSay
end «event SAYTLOUD»
をこれは、私が欲しいものです。唯一の違いは、ハンドラを名前で呼び出すことはできませんが、生コードを使用する必要があることです。ここに問題はありません。
私の質問:どのように私はにtest.scptd
にtest.sdef
ファイルと組み合わせる(生コード付き)のAppleScriptファイルtest_raw.applescript
を、コンパイルありません。
Objective-CとOSAKit(可能であれば)で私自身のdecompile_as
を作成するのは明らかな答えですが、私はそのスキルを持っていません。
うん。私は '.scptd'パッケージをgitに直接置いています。 diffハンドラはコマンドラインでは役に立ちますが、GitHub DesktopのようなGUIアプリケーションでは役に立ちません。 '.scpt'ファイルと' .scptd'( '.sdef'なし)ではビルドスクリプトがあります。私は '.applescript'テキスト版で開発しています(コンパイルをたくさん押してください)。多分私はワークフローを変更するでしょう。しかし、 'sdef'装備の' scptd'はクラックするのに難しいナットです... – doekman