Monday, November 08, 2010 at 12:05 AM.
system.verbs.builtins.radio.utilities.backup
<<Changes <<11/21/01; 6:35:23 PM by JES <<Changed smurf references to radio71 references. semaphore.lock ("radio.upstream", 7200); //lock for two minutes window.about (); local (oldRunThreads = user.scheduler.prefs.runThreads); user.scheduler.prefs.runThreads = false; scheduler.monitorThreads (); radio.data.flinstall = true; table.emptytable (@radio.data.website.["#glossary"]); radio.utilities.systemFolderTextFiles.save (); radio.utilities.homeFolderTextFiles.save (); local (pc = file.getPathChar ()); local (folder = user.radio.prefs.wwwfolder + "system" + pc + "upstream" + pc); if defined (user.prefs.radio71BackupFolder) { folder = user.prefs.radio71BackupFolder}; bundle { //save smurfTurfInstaller local (f = folder + "smurfTurfInstaller.ftsc"); workspace.radio71Installer = radio.utilities.radio71Installer; file.surefilepath (f); export.sendobject (@workspace.radio71Installer, f)}; <<bundle //Dave's backup code <<local (downloadsfolder = "I:\\Guest Databases\\www\\downloads\\") //on Pebbles, http://64.220.161.55/ <<bundle //copy data files <<local (f) <<fileloop (f in "c:\\program files\\radio userland\\guest databases\\ops\\datafiles\\") <<msg (f) <<file.copy (f, "c:\\program files\\radio userland\\www\\downloads\\" + file.filefrompath (f)) local (backupsfolder = Frontier.pathString + "backups" + pc + "Radio UserLand 7.1" + pc, archives = backupsfolder + "archives" + pc, f); <<bundle //move all non-folders into the archives folder <<file.sureFilePath (archives) <<file.sureFolder (archives) <<fileloop (f in folder) <<if not file.isfolder (f) <<if string.lower (f) endsWith ".fttb" or string.lower (f) endsWith ".ftsc" <<msg (f) <<file.copy (f, archives + file.filefrompath (f)) <<file.delete (f) on dobackup (adr) { local (extension); bundle { //get file extension case typeOf (adr^) { tableType { extension = ".fttb"}; scriptType { extension = ".ftsc"}}}; <<local (fname = (string (adr) - "system.verbs.") + string.padwithzeros (scratchpad.radiobackupserialnum, 3) + extension) local (fname); bundle { //build fname fname = string.popFileFromAddress (adr); on popFirstField (s) { return (s - (string.nthField (fname, '.', 1) + "."))}; while string.countFields (fname, '.') > 2 { fname = popFirstField (fname)}; if sizeOf (fname) > 26 { fname = popFirstField (fname)}; if sizeOf (fname) > 26 { fname = string.mid (fname, 1, 26)}; fname = fname + extension}; local (f = folder + fname); msg (f); file.surefilepath (f); if file.exists (f) { file.delete (f)}; export.sendobject (adr, f)}; <<bundle //export to downloadsfolder <<f = downloadsfolder + (string (adr) - "system.verbs.") + ".fttb" <<msg (f) <<file.surefilepath (f) <<export.sendobject (adr, f) bundle { //do the backups dobackup (@agents.statusMessage); try { dobackup (@playlist.init)}; dobackup (@weblogsCom); dobackup (@xmlStorageSystem); dobackup (@bookmarksMenu); dobackup (@chatClient); dobackup (@radio); dobackup (@file.getSpecialFolderPath); dobackup (@Frontier.clickers.typeOPML); dobackup (@Frontier.clickers.typeTEXT); dobackup (@html.prefs); dobackup (@html.editor); dobackup (@manila); dobackup (@op.rssToOutline); dobackup (@pike.init); dobackup (@pike.runFileMenuScript); dobackup (@pike.runEditMenuScript); dobackup (@scheduler.monitorThreads); dobackup (@startup.startupScript); dobackup (@tcp.httpClient); dobackup (@xml.aggregator); dobackup (@xml.rpc); dobackup (@Frontier.tools)}; user.scheduler.prefs.runThreads = oldRunThreads; scheduler.monitorThreads (); if not defined (scratchpad.radiobackupserialnum) { scratchpad.radiobackupserialnum = 0}; scratchpad.radiobackupserialnum++; scratchpad.radiobackupdate = clock.now (); msg (""); semaphore.unlock ("radio.upstream")
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.