DIRECTORY BasicTime, Commander, DFClosure, DFUtilities, FileNames, FS, IO, MessageWindow, ProcessProps, Rope, SystemVersion; BringDAWorldImpl: CEDAR PROGRAM IMPORTS DFUtilities, FileNames, FS, IO, MessageWindow, ProcessProps, Rope, SystemVersion ~ BEGIN ROPE: TYPE ~ Rope.ROPE; ROPES: TYPE ~ LIST OF ROPE; STREAM: TYPE = IO.STREAM; File: DFClosure.FileProc = { out: STREAM = NARROW [ProcessProps.GetProp[$CommanderHandle], Commander.Handle].out; localName: ROPE = DFUtilities.RemoveVersionNumber[name]; serverName: ROPE = Rope.Cat[from, name]; BEGIN attachedTo: ROPE; created: BasicTime.GMT; [attachedTo: attachedTo, created: created] _ FS.FileInfo[name: localName, remoteCheck: FALSE ! FS.Error => GOTO Copy]; -- if the file is inexistent, we copy it! IF created=date.gmt THEN RETURN; -- already there GOTO Copy; EXITS Copy => [] _ FS.Copy[ to: localName, from: serverName, wantedCreatedTime: date.gmt, attach: TRUE ! FS.Error => out.PutF["%g can not be copied: %g.\n", IO.rope[serverName], IO.rope[error.explanation]]; ]; END; }; daTop: ROPE = IO.PutFR["/DATools/DATools%g.%g/Top/*.df", IO.int[SystemVersion.release.major], IO.int[SystemVersion.release.minor]]; daWorld: ROPE = IO.PutFR["/DATools/DATools%g.%g/Top/DAWorldMap.df", IO.int[SystemVersion.release.major], IO.int[SystemVersion.release.minor]]; Import: DFClosure.ImportProc = { RETURN [SELECT TRUE FROM Rope.Match[daTop, FileNames.ConvertToSlashFormat[dfName], FALSE] => all, ENDCASE => public]; }; Error: DFClosure.ErrorProc = {}; Message: DFClosure.MessageProc = {MessageWindow.Append[message, TRUE]}; END. ΘBringDAWorldImpl.mesa Copyright c 1986 by Xerox Corporation. All rights reserved. Created by Bertrand Serlet, October 21, 1986 10:11:12 pm PDT Bertrand Serlet October 28, 1986 3:56:18 pm PST Κ/˜codešœ™Kšœ Οmœ1™