Wednesday, December 22, 2010 at 11:00 AM.
workspace.userlandSamples.exportWorkspace
<<Changes
<<12/22/10; 10:01:47 AM by DW
<<This script is a step on the path to making it easy to start with a fresh OPML installation. It exports all the parts of your workspace table. Bonus -- it also exports the sub-tables of your user table.
local (pc = file.getpathchar (), folder = frontier.pathstring + "Workspace backup" + pc);
on saveobject (adr, folder) {
local (suffix = Frontier.getFileSuffix (typeOf (adr^), true));
if suffix != "" {
suffix = "." + suffix};
s = nameof (adr^);
adrParent = parentOf (adr^);
if adrParent != nil {
if (not table.inguestdatabase (adr)) or (adrparent != table.getrootaddress (adr)) {
local (dottedname = nameOf (adrParent^) + '.' + s);
if (sizeof (dottedname) + sizeof (suffix) + 1) < 32 {
s = dottedname}}};
local (f = folder + s + suffix);
file.surefilepath (f);
export.sendobject (adr, f);
file.setmodified (f, timemodified (adr));
file.setcreated (f, timecreated (adr))};
on savetable (adrtable, folder) {
local (adr);
for adr in adrtable {
saveobject (adr, folder + nameof (adrtable^) + pc)}};
savetable (@workspace, folder);
savetable (@user, folder)
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.