Monday, November 08, 2010 at 12:06 AM.
system.verbs.builtins.webserver.apache.s3backup.checkFile
on checkFile (f, flstartup, adrdata) { <<Changes <<6/8/09; 10:29:06 AM by DW <<Factored out for easy debugging. if (f endswith ".DS_Store") or file.isfolder (f) { return}; local (folder = adrdata^.prefs.folder, pc = file.getpathchar (), i); local (path = string.delete (f, 1, sizeof (folder))); local (nomad = @adrdata^.fileinfo); local (ctsteps = string.countfields (path, pc)); for i = 1 to ctsteps { nomad = @nomad^.[string.nthfield (path, pc, i)]; if not defined (nomad^) { new (tabletype, nomad)}}; webserver.apache.s3backup.initFileTable (nomad, f); try { local (flbackup = false, whencomp); nomad^.whenLastCheck = clock.now (); nomad^.ctChecks++; nomad^.whenFileModified = file.modified (f); bundle { //set whencomp if defined (nomad^.whenLastBackup) { whencomp = nomad^.whenLastBackup} else { whencomp = adrdata^.prefs.whenLastFullBackup}}; nomad^.fileSize = file.size (f); if not flstartup { if nomad^.whenFileModified > whencomp { if nomad^.fileSize <= adrdata^.prefs.maxfilesize { flbackup = true}}}; if flbackup { local (s3path = adrdata^.prefs.s3path + string.replaceall (path, pc, "/"), startticks = clock.ticks ()); s3.newobject (s3path, file.readwholefile (f)); nomad^.ctbackups++; nomad^.whenlastbackup = clock.now (); adrdata^.stats.whenLastUpload = nomad^.whenlastbackup; adrdata^.stats.ctUploads++}} <<log2.add ("webserver.apache", "s3 backup", s3path, startticks) else { nomad^.lastError = tryerror; nomad^.whenLastError = clock.now ()}}; bundle { //test code local (adrdata = webserver.apache.s3backup.init ()); checkfile ("c:\\www\\wwwscriptingcom\\index.html", false, adrdata)}
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.