Monday, November 08, 2010 at 12:04 AM.
system.verbs.builtins.opmlEditor.runScriptsFolder
on runScriptsFolder () { <<Changes <<12/28/09; 8:29:31 AM by DW <<Implement Scripts folder, a sub-folder of Guest Databases/ops that contains scripts that run every minute, every hour and once every night. local (basepath = "/ops/scripts/"); on runFolder (name) { local (folder = frontier.getsubfolder (basepath + name + "/"), f, adrcounter); file.surefilepath (folder + "xxx"); bundle { //set adrcounter local (capname = string.upper (name [1]) + string.delete (name, 1, 1)); adrcounter = @user.opmlEditor.stats.runScriptsFolder.["ct" + capname + "Scripts"]; if not defined (adrcounter^) { adrcounter^ = 0}}; fileloop (f in folder) { try { local (s = string (file.readWholeFile (f))); s = string.replaceall (s, "\n", ""); evaluate (s); adrcounter^++} else { new (tabletype, @user.opmlEditor.stats.runScriptsFolder.lastScriptError); user.opmlEditor.stats.runScriptsFolder.lastScriptError.s = tryerror; user.opmlEditor.stats.runScriptsFolder.lastScriptError.when = clock.now (); user.opmlEditor.stats.runScriptsFolder.lastScriptError.f = f}}}; if user.opmlEditor.prefs.flScriptsFolderEnabled { if file.exists (frontier.getsubfolder ("/ops/scripts/")) { local (now = clock.now (), day, month, year, hour, minute, second); date.get (now, @day, @month, @year, @hour, @minute, @second); runFolder ("everyMinute"); if hour != user.opmlEditor.stats.runScriptsFolder.lastHourlyScriptHour { user.opmlEditor.stats.runScriptsFolder.lastHourlyScriptHour = hour; runFolder ("hourly")}; if not date.sameday (now, user.opmlEditor.stats.runScriptsFolder.whenLastOverNightScriptRun) { user.opmlEditor.stats.runScriptsFolder.whenLastOverNightScriptRun = now; runFolder ("overnight")}}}}; bundle { //test code runScriptsFolder ()}
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.