Monday, November 08, 2010 at 12:01 AM.
system.verbs.apps.stuff.createArchive
on createArchive (sitfile, filelist, flbinhex) {
on SITEnginePresent () {
return (file.exists (file.getSpecialFolderPath ("", "Extensions", false) + "StuffIt Engine™"))};
if SITEnginePresent () { <<use the StuffIt Engine
try {file.delete (sitfile)}; <<Wed, Jan 22, 1997 at 5:46:24 AM by DW
StuffitCMD.stuff (filelist, sitfile, false, false, false, flbinhex)}
else { <<use StuffIt Deluxe/Lite
app.start ("stuff");
app.bringToFront (); <<4.0.2
bundle { <<create a new archive file
try {file.delete (sitfile)};
on make (new, at = nil, withData = nil, withProperties = nil) { <<Make a new element
return (appleEvent (stuff.id, 'core', 'crel', 'kocl', string4 (new), 'insh', at, 'data', withData, 'prdt', withProperties))};
with objectModel {
make ('Arc ', withProperties: {'fPth':string (sitfile)})}};
bundle { <<add the files in the list to the archive
local (ct = sizeof (filelist), i);
for i = 1 to ct {
local (into = nil, encryption = nil, compression = nil, deletingOriginals = nil);
local (replaceDuplicates = nil, matchCriteria = nil);
appleEvent (stuff.id, 'SIT!', 'STUF', '----', alias (filelist [i]), 'dest', objspec (into), 'encr', boolean (encryption), 'comp', boolean (compression), 'dele', boolean (deletingOriginals), 'repl', boolean (replaceDuplicates), 'matc', boolean (matchCriteria))}};
bundle { <<close the archive
with objectmodel {
appleEvent (stuff.id, 'core', 'clos', '----', objspec (window [file.filefrompath (sitfile)]))}};
if flbinhex { <<create the BinHex file
appleevent (stuff.id, 'SIT!', 'TRAN', '----', alias (sitfile), 'trnm', "BinHex4", 'encd', true);
file.delete (sitfile)}}}
<<bundle <<test code
<<local (sitfile = "Jaz Disk 1:testfile.sit")
<<local (filelist = {"Jaz Disk 1:Picture 1", "Jaz Disk 1:tmp.html"})
<<createArchive (sitfile, filelist, true)
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.