I want to compile and de-compile AppleScript from the command-line, so I can put the text-files into git. However, I run into problems with a Scripting Library that contains sdef (Scripting Definition) files.
When I perform decompile MyLib.scptd/Contents/Resources/Scripts/main.scpt, I get output like:
use AppleScript version "2.4"
use scripting additions
on «event ABCDEFGH» my_argument
--...
end «event ABCDEFGH»
which is fine i guess, since the raw commands («event ABCDEFGH») it the textual and runnable representation of the source code of the Scripting Library. (the event ABCDEFGH is obviously an example; I use other codes but for sake of simplicity…)
However, how do I compile this source back into a script library, I can’t get it to use my script definition file. osacompile doesn’t have an argument for an sdef-file. When I pass the sdef-file as a 2nd argument, osacompile complaints MyLib.sdef:1: error: A “<” can’t go here. (-2740).
Is it at all possible to do this I want from the command line, and if so, how?
I think I lost my mind. There never was a problem, except from me having to many assumptions.
I’m just back from holiday, and now it’s obvious.
@suzume is right. A script bundle with scripting definition is no different than one without one. The scpt-file contains raw-codes when an SDEF (Scripting Definition) is being used. Just decompile the scpt-file when putting into git, and compile back to scpt when getting out of git.
@ShaneStanley: I think you are refering to putting the SDEF values into the the git-difff? Like what an editor like Scripting Debugger is doing. That would be pretty reasonably tricky indeed.