On Tue, 2003-03-25 at 11:00, Igor Pechtchanski wrote:
> > 3) reused in RunFindVisitor. > > No. In fact, the code currently in RunFindVisitor is broken and will not > work if there are subdirectories under /etc/postinstall. What I would > like to do (in a separate patch) is change FindVisitor so that basePath is > the POSIX path, rather than the Windows one. We can then simply > concatenate the filename to it and use that. Ok. There aren't allowed to directories under /etc/postinstall BTW. > > run_package_scripts cries our for a helper class IMO. > > > > i.e. ScriptRunner with > > a) constructor > > b) destructor > > c) run(std::vector<Script> const &) method. > > d) operator () (Script const &aScript) method. > > I don't see the benefit of run(); it'll be subsumed by operator(), IMO. > Otherwise, I'll give it a shot. well, you'll have one instance of ScriptRunner for both the dependency order package scripts, and the found-by-filename scripts. If you have pre-running-a-vector or post-running-a-vector code, then that belongs in run(). If that code goes into the constructor, then sure, eliminate run(). > > this: > > for (std::vector<Script>::iterator script = scripts.begin(); > > + script != scripts.end(); > > + ++script) > > > > then becomes > > *this = for_each (scripts.begin(), scripts.end(), *this); > > We could probably just lose the return value... Check the template, IIRC it takes a copy of the object, calls the copy's operator (), then returns a copy of the copy. i.e. if we want failure stats, script run counts etc, we need the return value. Rob -- GPG key available at: <http://users.bigpond.net.au/robertc/keys.txt>.
signature.asc
Description: This is a digitally signed message part