스크립트 정의 (sdef)를 사용하여 디 컴파일 및 컴파일하고 AppleScript 스크립트 라이브러리 (scptd)를 만들 수 있기를 원합니다. 버전 제어의 소스.스크립팅 정의 (sdef)로 AppleScript 스크립트 라이브러리 (scptd)를 컴파일하는 방법
이 질문의 배경은 내 AppleScript 소스를 git
에 넣는 것입니다. 내 질문의 대부분은 this stackoverflow question/answer에 의해 답변되었지만 여기에 설명 된 나의 질문은 여전히 내 모든 스크립트를 git에 넣지 못하게합니다. 이 라이브러리 test.scptd
에서
say it loud
과 핸들러를 가지고 있고,
sdef
파일
test.sdef
에이 코드
SAYTLOUD
와 명령으로 선언됩니다.
sdef
파일에 대한 링크가 파손되어 있기 때문에,
on say it loud whatToSay
do shell script "say " & quoted form of whatToSay
end on say it loud
그러나,이 소스가 osacompile
컴파일 할 수 없으며 say it loud
는되지 않습니다 :
osadecompile
를 사용하여, 나는 AppleScript로 텍스트 파일 test.applescript
를 얻을 수 유효한 식별자.
다행히도 우수한 편집기 인 TextMate의 일부인 이진 compile_as (source here)을 발견했습니다. 때, 디 컴파일, 나는 다음과 같은 소스 파일 test_raw.applescript
을 얻을 :
on «event SAYTLOUD» whatToSay
do shell script "say " & quoted form of whatToSay
end «event SAYTLOUD»
이 코드는 여전히 애플 스크립트 유효하기 때문에 내가 원하는 것입니다 그것은 실행 가능합니다. 유일한 차이점은 처리기를 이름으로 호출 할 수 없지만 원시 코드를 사용해야한다는 것입니다. 여기에 문제 없습니다.
내 질문 : 나는에게 (원시 코드 포함) 애플 스크립트 파일 test_raw.applescript
을 컴파일 어떻게, test.scptd
로 test.sdef
파일과 함께.
확실한 대답은 Objective-C와 OSAKit (가능한 경우)을 사용하여 decompile_as
을 직접 작성하는 것이지만 관련 기술은 갖고 있지 않습니다.
예. 이제'.scptd' 패키지를 git에 직접 넣을 것입니다. diff 처리기는 명령 행에서 도움이되지만 GitHub Desktop과 같은 GUI 응용 프로그램에는 도움이되지 않습니다. '.scpt' 파일과'.scptd' ('.sdef'가없는)에는 빌드 스크립트가 있습니다. 필자는'.applescript' 텍스트 버전으로 개발을하고 있습니다. 어쩌면 워크 플로우를 바꿀 것입니다. 그러나'sdef'-equipped'scptd'는 깨지기 어려운 하드 너트입니다 ... – doekman