This is the mail archive of the mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Run postinstall scripts in a thread with progress bars- take 3

On Tue, 2003-03-25 at 09:48, Igor Pechtchanski wrote:
> On 21 Mar 2003, Robert Collins wrote:
> Rob,
> I wanted (and still want) to keep the two bar progress on this.  The
> second bar would show progress through packages, and the first - progress
> through the scripts *in the current package*.

Ok. I don't really see the end-user benefit, but don't object either.

> > Alteratively/also you could extract the script running and screen
> > updating code to a new method.
> > Rob
> Done.  I've also done some restructuring of the Script class and enabled
> the "#if 0"'d code from the previous patch, now that the progress bars
> exist.
> I've attached the next iteration.  Should apply cleanly to HEAD.
> 	Igor
> ==============================================================================
> ChangeLog:
> 2003-03-24  Igor Pechtchanski <pechtcha at cs dot nyu dot edu>
> 	* threebar.h (WM_APP_START_POSTINSTALL): New message.
> 	* (ThreeBarProgressPage::OnMessageApp):
> 	Add handling for WM_APP_START_POSTINSTALL and
> 	* (do_install_thread): Set next_dialog to
> 	* (DesktopSetupPage::OnFinish): Move the
> 	do_postinstall call to ThreeBarProgressPage::OnMessageApp.
> 	* script.h (Script::fullName): New member function.
> 	(Script::run): New member function.
> 	* (Script::fullName): Implement.
> 	(Script::run): Implement.
> 	(run): Enable "#if 0"'d code.
> 	* (Progress): New extern variable.
> 	(RunFindVisitor::visitFile): Add script to vector
> 	instead of running.
> 	(RunFindVisitor::_scripts): New member variable.
> 	(run_package_scripts): New static function.
> 	(do_postinstall_thread): Rename do_postinstall to.  Add
> 	Progress bar and text setting.  Add package count.
> 	(do_postinstall_reflector): New static function.
> 	(do_postinstall): Rename to do_postinstall_thread.
> 	Create a thread instead.

etc_postinstall should be:
1) a static public const member of Script.
2) called ETCPostinstall. (Leading capital for statics).
3) reused in RunFindVisitor.

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.

for (std::vector<Script>::iterator script = scripts.begin();
+       script != scripts.end();
+       ++script) 

then becomes
*this = for_each (scripts.begin(), scripts.end(), *this);

This is looking very good, and nearly ready to apply.


GPG key available at: <>.

Attachment: signature.asc
Description: This is a digitally signed message part

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]