<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Don't know how practically useful this is yet.</div><div><br></div><div><font class="Apple-style-span" face="Courier">cd repo/codebase</font></div><div><font class="Apple-style-span" face="Courier">../../utils/reorg/scan --modules | ../../utils/reorg/correct-modules | ../../utils/reorg/apply --global</font></div><div><br></div><div>What it does:</div><div><br></div><div>A: scan the codebase for files with module definitions</div><div><br></div><div><b>example portion of output:</b></div><div><br></div><div><div><font class="Apple-style-span" face="Courier">core/AST/generated/Translator.js: </font></div><div><font class="Apple-style-span" face="Courier">- - "'lively.AST.generated.Translator'"</font></div><div><font class="Apple-style-span" face="Courier">modules/morphic/ObjectMigration.js: </font></div><div><font class="Apple-style-span" face="Courier">- - "'lively.morphic.ObjectMigration'"</font></div></div><div><br></div><div>B: for each module name, check what it thinks the correct module name should be based upon the filename</div><div><br></div><div><div><font class="Apple-style-span" face="Courier">core/AST/generated/Translator.js: </font></div><div><font class="Apple-style-span" face="Courier">- - "'lively.AST.generated.Translator'"</font></div><div><font class="Apple-style-span" face="Courier">  - "'core.AST.generated.Translator'"</font></div><div><font class="Apple-style-span" face="Courier">modules/morphic/ObjectMigration.js: </font></div><div><font class="Apple-style-span" face="Courier">- - "'lively.morphic.ObjectMigration'"</font></div><div><font class="Apple-style-span" face="Courier">  - "'modules.morphic.ObjectMigration'"</font></div></div><div><font class="Apple-style-span" face="Courier"><br></font></div><div><font class="Apple-style-span" face="Courier"><span class="Apple-style-span" style="font-family: Helvetica; ">C: Apply each of the above as a find/replace globally to the whole codebase.</span></font></div><div><br></div><div>In theory this allows us to do one of two things, either:</div><div><br></div><div> A, automatically mess up the codebase completely! Or B, to reorganise modules and files at will, using this method to fix things up.</div><div><br></div><div>Due to class naming conventions I don't think we are at B yet, but we might be getting there.</div><div><br></div><div>Keith</div><div><br></div><div>===</div><div><br></div><div>p.s. in the meantime, it has shown up four modules which appear to be misnamed in webwerkstatt</div><div><br></div><div><div><font class="Apple-style-span" face="Courier">lively/morphic/HTML.js: </font></div><div><font class="Apple-style-span" face="Courier">- - "'apps.Base64'"</font></div><div><font class="Apple-style-span" face="Courier">lively/persistence/Serializer.js: </font></div><div><font class="Apple-style-span" face="Courier">- - "'cop.Layers'"</font></div><div><font class="Apple-style-span" face="Courier">cop/Layers.js: </font></div><div><font class="Apple-style-span" face="Courier">- - "'cop.Flatten'"</font></div><div><font class="Apple-style-span" face="Courier"><b>Tests/testRessources/combinedFooBar.js: </b></font></div><div><font class="Apple-style-span" face="Courier"><b>- - "'Tests.testRessources.Foo'"</b></font></div><div><font class="Apple-style-span" face="Courier"><b>  - "'Tests.testRessources.combinedFooBar'"</b></font></div><div><font class="Apple-style-span" face="Courier">- - "'Tests.testRessources.Bar'"</font></div><div><font class="Apple-style-span" face="Courier">apps/DiffMatchPatch.js: </font></div><div><font class="Apple-style-span" face="Courier">- - "'lib.diff_match_patch.diff_match_patch_uncompressed'"</font></div><div><font class="Apple-style-span" face="Courier"><b>ometa/bs-ometa-compiler.js: </b></font></div><div><font class="Apple-style-span" face="Courier"><b>- - "'ometa/bs-ometa-compiler.js'"</b></font></div><div><font class="Apple-style-span" face="Courier"><b>  - "'ometa.bs-ometa-compiler'"</b></font></div><div><font class="Apple-style-span" face="Courier">lively/morphic/Widgets.js: </font></div><div><font class="Apple-style-span" face="Courier">- - "'lively.ide'"</font></div><div><font class="Apple-style-span" face="Courier">lively/NewMorphicCompat.js: </font></div><div><font class="Apple-style-span" face="Courier">- - "'lively.morphic'"</font></div><div><font class="Apple-style-span" face="Courier">lively/morphic/Events.js: </font></div><div><font class="Apple-style-span" face="Courier">- - "'lively.morphic.ClickOnLineHack'"</font></div><div><font class="Apple-style-span" face="Courier">- - "'lively.morphic.EventExperiments'"</font></div><div><font class="Apple-style-span" face="Courier">lively/morphic/Connectors.js: </font></div><div><font class="Apple-style-span" face="Courier">- - "'lively.LayerableMorphs'"</font></div><div><font class="Apple-style-span" face="Courier"><b>lib/splitterjsobj/splitter_v1_2_0.js: </b></font></div><div><font class="Apple-style-span" face="Courier"><b>- - "'splitterjsobj.splitter_v1_2_0'"</b></font></div><div><font class="Apple-style-span" face="Courier"><b>  - "'lib.splitterjsobj.splitter_v1_2_0'"</b></font></div><div><font class="Apple-style-span" face="Courier"><b>Tests/lively/morphic/video/VideoTest.js: </b></font></div><div><font class="Apple-style-span" face="Courier"><b>- - "'lively.morphic.video.VideoTest'"</b></font></div><div><font class="Apple-style-span" face="Courier"><b>  - "'Tests.lively.morphic.video.VideoTest'"</b></font></div><div><font class="Apple-style-span" face="Courier">Tests/ToolsTests.js: </font></div><div><font class="Apple-style-span" face="Courier">- - "'dummySource'"</font></div><div><font class="Apple-style-span" face="Courier">- - "'bla.blupf'"</font></div><div><font class="Apple-style-span" face="Courier">- - "'lively.Examples'"</font></div></div><div><br></div></body></html>