<> <> DIRECTORY Commander, FS, IO, MessageWindow USING [Append], Rope, VersionMap; CountReleaseSize: CEDAR PROGRAM IMPORTS Commander, FS, IO, MessageWindow, VersionMap = BEGIN Map: TYPE = VersionMap.Map; ROPE: TYPE = Rope.ROPE; CountCommand: Commander.CommandProc = { files: INT _ 0; pages: INT _ 0; ifsPages: INT _ 0; InnerCount: PROC [name: ROPE] = { map: Map _ VersionMap.RestoreMapFromFile[name]; IO.PutF[cmd.out, " Processing: %g\n", [rope[name]]]; FOR i: INT IN [0..VersionMap.Length[map]) DO eachName: ROPE _ VersionMap.FetchName[map, i]; bytes: INT _ FS.FileInfo[eachName ! FS.Error => IF error.group # bug THEN { IO.PutF[cmd.out, "File not found: %g\n", [rope[eachName]]]; LOOP; }].bytes; pages _ pages + (bytes+511) / 512; ifsPages _ ifsPages + (bytes+2047) / 2048; files _ files + 1; MessageWindow.Append[ msg _ IO.PutFR[ " files: %g, pages: %g, ifsPages: %g", [integer[files]], [integer[pages]], [integer[ifsPages]]], TRUE]; ENDLOOP; }; InnerCount["CedarSource.VersionMap"]; InnerCount["CedarSymbols.VersionMap"]; }; Commander.Register["CountReleaseSize", CountCommand]; END.