• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Get script as text from scpt files
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Get script as text from scpt files


  • Subject: Re: Get script as text from scpt files
  • From: has <email@hidden>
  • Date: Fri, 16 Mar 2007 12:56:05 +0000

jj wrote:

> Does anyone know how to get the contents of an AppleScript file saved
> as Compiled Script (Data Fork) as text?


I think both Smile and Jon's Commands (running thru Rosetta, if needed) will
provide the coercion (only for not-run-only scpts, of course).

Also TextCommands:

set scriptObj to load script scptFile
tell application "TextCommands" to format {scriptObj} using "%s"

...

Simon Topliss wrote:

A little more info may help. I'm trying to set up subversion managed folder of script libraries.

Some suggestions below.


AS does not support .applescript (text) files for the 'load script' command.

Since this is an in-house system, one option might be to write your own 'load script file' osax that supports loading source-based scripts as well as compiled ones (see OSALoadFile and kOSAModeCompileIntoContext). If you're using a proper library loading system like AppleMods' Loader, only the loader code would need modified to use the new command. Or, assuming that OS X loads osaxen in a sensible order, you could just define your own 'load script' (sysoload) osax that overrides the Apple-installed one.


Of course, compiling library scripts at load-time carries its own penalties: longer loading times, all applications used by libraries must be present, AS may need to launch some apps to compile the script. You'd need to consider those when deciding if a completely source-based system is the way to go.


Subversion does not offer the ability to compare binary (.scpt) files.

Subversion can handle binary files, it's just no good at diff-ing them. But how big a problem is this really? If you need to compare two .scpt files for changes, write yourself a script that checks them out them out into temporary directories, decompiles them into source files, and runs diff on those.



I have many library applescript files that I want to use with svn (displayDialog(), unicodeToString(), filenameFromPath(), etc). When a library file is changed, I want to be able to commit these files to an svn repository.

So, I'm trying to use the best of both by using .scpt files as the library files and then use a folder action (probably an idle handler as folder actions are still to unreliable) to create a .applescript file from the amended .scpt file when it detects a change.

If you want to ensure that .scpt files are always checked in as .applescript files, I'd suggest looking into using svn hooks:


http://svnbook.red-bean.com/nightly/en/ svn.reposadmin.create.html#svn.reposadmin.create.hooks

When and how you do commits is a separate problem and best dealt with as such.


Also, does anyone have an idea on how to manage the above with .app and .scptd files? When a .app or .scptd file is amended a new directory (bundle) is created that does not keep the .svn directory. Therefore, the svn repository is completely broken.

It's a failing of svn. It has no ability to deal with bundles.

It's a longstanding issue:

http://subversion.tigris.org/issues/show_bug.cgi?id=707

If it was worth your time, you could develop a suitable patch yourselves. That'd give you an in-house solution, and you could always submit it for inclusion in a future svn release which I'm sure would be appreciated by other svn users as well.

Otherwise you're probably best treating bundles as opaque data and tar-ing them, which seems to be the usual workaround.

Another option is to use only svn-aware editors. Xcode already is, but I'm guessing the others aren't. e.g. If Script Debugger stomps on .svn directories when saving .scptd/.app bundles, submit that as a bug report to LNS. (As a separate feature request for SD5, you might also suggest they add integrated CVS support similar to Xcode's.)


Saving script files with a resource fork doesn't work either. svn 'commits' these files as zero byte files. The resource fork is lost.

Another known issue. Again, tar them, or use Rez/Derez to move data between resource and data forks.


HTH

has
--
http://appscript.sourceforge.net
http://rb-appscript.rubyforge.org
http://appscript.sourceforge.net/objc-appscript.html

_______________________________________________
Do not post admin requests to the list. They will be ignored.
AppleScript-Users mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
Archives: http://lists.apple.com/archives/applescript-users

This email sent to email@hidden
  • Follow-Ups:
    • Re: Get script as text from scpt files
      • From: Simon Topliss <email@hidden>
  • Prev by Date: Quark XPress and InDesign Questions (2 parter)
  • Next by Date: Quark - Find and Replace
  • Previous by thread: Re: Get script as text from scpt files
  • Next by thread: Re: Get script as text from scpt files
  • Index(es):
    • Date
    • Thread