<> <> <> <> <> DIRECTORY Ascii USING [Lower], Basics, BasicTime USING [GMT, Now, nullGMT], Commander USING [CommandProc, Handle, Register], CommandTool USING [ArgumentVector, Failed, Parse], Convert, DFUtilities USING [DirectoryItem, FileItem, Filter, ImportsItem, IncludeItem, ParseFromStream, ProcessItemProc, UsingList], FileNames, FS USING [ComponentPositions, ExpandName, EnumerateForInfo, Error, FileInfo, InfoProc, StreamOpen, tDirectory], FSBackdoor, IO, List USING [CompareProc], Process USING [CheckForAbort], RedBlackTree USING [Compare, Create, Delete, EachNode, EnumerateIncreasing, GetKey, Insert, Lookup, Table], RefText, Rope, SunNFSRemoteFile, Tar, TarFileFormat, TarPrivate, UnixRemoteFile, UXTime USING [DOWN, FromGMT]; TrickleChargeToTarImpl: CEDAR MONITOR IMPORTS Ascii, BasicTime, Commander, CommandTool, Convert, DFUtilities, FileNames, FS, IO, Process, RedBlackTree, Rope, RefText, SunNFSRemoteFile, TarPrivate, UnixRemoteFile, UXTime = BEGIN <> GMT: TYPE = BasicTime.GMT; ROPE: TYPE = Rope.ROPE; STREAM: TYPE = IO.STREAM; TBLOCK: NAT ~ TarFileFormat.TBLOCK; Switches: TYPE = PACKED ARRAY CHAR['a..'z] OF BOOL; TCType: TYPE = {fullDirectory, oneDF, allDFs}; TCInfo: TYPE = REF TCInfoRec; TCInfoRec: TYPE = RECORD[ pseudoServer, translation: ROPE, -- pseudoServer and its translation, for source tarFileName: ROPE, server: ROPE, srcPrefixToSurpress: ROPE, -- prefix path for source to supress restOfSrcPrefix: ROPE, srcPrefix: ROPE, otherArg: ROPE, -- for oneDF and allDFs tcType: TCType _ fullDirectory ]; FileEntry: TYPE = REF FileEntryRep; FileEntryRep: TYPE = RECORD [ name: ROPE, <> short: ROPE, <> fullUnix: ROPE, <> relative: ROPE, <> caseFileName: ROPE, relativeCaseName: ROPE, date: GMT, <> len: INT, <> state: FileEntryState <> ]; FileEntryState: TYPE = {init, doingHeader, copying, moved}; <> dirDoc: ROPE = " tarFile srcDir moves files from srcDir to tarFile "; allDfsDoc: ROPE = "{ { pseudoServerName translation } } tarFile srcDirToBeSupressed subDir {subdirForDfs} moves files from srcDirToBeSupressed/srcDir{/subdirForDfs} to tarFile "; oneDfDoc: ROPE = "{ { pseudoServerName translation } } tarFile srcDirToBeSupressed subDir subDirAndDfName moves files from srcDirToBeSupressed/srcDir/subDirAndDfName to tarFile "; <