\r
TaskSetNames = taskSetNames.ToArray();\r
}\r
- \r
+ \r
public override void Run()\r
{\r
- currentTaskSetIndex ++;\r
+ currentTaskSetIndex = 0;\r
RaiseTaskSetEvent(NaGetTaskSetEventType.STARTED, "\83C\83\93\83X\83g\81[\83\8b\8f\88\97\9d\8aJ\8en");\r
\r
+ {\r
+ // \83n\83b\83V\83\85\94ñ\93K\8d\87\82È\83C\83\93\83X\83g\81[\83\89\82Ì\95\\r
+ System.Collections.Generic.List<Installation> invalidInstallers = null;\r
+ \r
+ while (invalidInstallers == null || invalidInstallers.Count > 0) {\r
+ currentTaskSetIndex = 0;\r
+ packageInstallerDownloaded = false;\r
+ \r
+ runDownloadInstallers();\r
+ if (done) return; // \82à\82µrunDownloadInstallers()\93à\82Å\83G\83\89\81[\8fI\97¹\82µ\82Ä\82¢\82½\82È\82ç\8fI\97¹\r
+ \r
+ packageInstallerDownloaded = true;\r
+ \r
+ // \83n\83b\83V\83\85\82Ì\89ó\82ê\82Ä\82¢\82é\83C\83\93\83X\83g\81[\83\89\82ð\8eæ\93¾\r
+ invalidInstallers = runCheckHashForInstaller();\r
+ \r
+ // \83n\83b\83V\83\85\82ª\89ó\82ê\82Ä\82¢\82é\82Æ\82«\82Ì\91Î\8dô\r
+ if (invalidInstallers.Count > 0) {\r
+ string msg = string.Format("{0}\8cÂ\82Ì\83p\83b\83P\81[\83W\82Å\83t\83@\83C\83\8b\82ª\89ó\82ê\82Ä\82¢\82é\89Â\94\\90«\82ª\82 \82è\82Ü\82·\n\8b\90§\93I\82É\83C\83\93\83X\83g\81[\83\8b\82ð\91±\8ds\82µ\82Ü\82·\82©?",\r
+ invalidInstallers.Count);\r
+ NaGetTaskQueryResult result = RaiseTaskSetQueryEvent(msg, NaGetTaskQueryResult.CONTINUE\r
+ | NaGetTaskQueryResult.RETRY\r
+ | NaGetTaskQueryResult.CANCEL);\r
+ \r
+ switch (result) {\r
+ case NaGetTaskQueryResult.CONTINUE:\r
+ RaiseTaskSetEvent(NaGetTaskSetEventType.WARNING, "\83n\83b\83V\83\85\82Ì\94ñ\90®\8d\87\82ð\96³\8e\8b\82µ\82Ä\83C\83\93\83X\83g\81[\83\8b\82ð\8cp\91±");\r
+ invalidInstallers.Clear(); // \83n\83b\83V\83\85\94ñ\93K\8d\87\83p\83b\83P\81[\83W\82ð\8b\90§\93I\82É\96\95\8fÁ\r
+ break;\r
+ case NaGetTaskQueryResult.RETRY:\r
+ RaiseTaskSetEvent(NaGetTaskSetEventType.INFO, "\83_\83E\83\93\83\8d\81[\83h\8f\88\97\9d\82ð\8dÄ\8e\8e\8ds");\r
+ \r
+ foreach (Installation invalidInst in invalidInstallers) {\r
+ invalidInst.RemoveDownloadedFile();\r
+ }\r
+ \r
+ break;\r
+ //case NaGetTaskQueryResult.CANCEL:\r
+ default:\r
+ RaiseTaskSetEvent(NaGetTaskSetEventType.CANCELED, "\83p\83b\83P\81[\83W\82Ì\83C\83\93\83X\83g\81[\83\8b\8f\88\97\9d\82ª\83L\83\83\83\93\83Z\83\8b\82³\82ê\82Ü\82µ\82½");\r
+ done = true;\r
+ return;\r
+ }\r
+ }\r
+ currentTaskSetIndex ++;\r
+ }\r
+ }\r
+ \r
+ foreach (Installation inst in Installations) {\r
+ string installTaskMsg = inst.ToString();\r
+ if (inst.Silent && (!inst.SupportsSilentOnly)) {\r
+ installTaskMsg += " (\83T\83C\83\8c\83\93\83g\83C\83\93\83X\83g\81[\83\8b)";\r
+ }\r
+ \r
+ RaiseTaskSetEvent(NaGetTaskSetEventType.STARTED_TASKSET, installTaskMsg);\r
+ \r
+ try {\r
+ \r
+ inst.ErrorDataReceived += this.ReceivedErrorData;\r
+ inst.OutputDataReceived += this.ReceivedOutputData;\r
+ int exitCode = inst.Install();\r
+ if (exitCode != 0) {\r
+ RaiseTaskSetEvent(NaGetTaskSetEventType.WARNING, "\83C\83\93\83X\83g\81[\83\8b\82ª\90³\8fí\82É\8fI\82¦\82Ä\82¢\82È\82¢\89Â\94\\90«\82ª\82 \82è\82Ü\82·\81B\83C\83\93\83X\83g\81[\83\89\82Ì\8fI\97¹\83R\81[\83h:"+exitCode);\r
+ }\r
+ \r
+ pkgListMan.WriteInstallationLog(inst);\r
+ } catch (Exception e) {\r
+ RaiseTaskSetEvent(NaGetTaskSetEventType.ERROR, e.Message);\r
+ done = true;\r
+ return;\r
+ }\r
+ currentTaskSetIndex ++;\r
+ \r
+ RaiseTaskSetEvent(NaGetTaskSetEventType.COMPLETED_TASKSET, installTaskMsg);\r
+ \r
+ if (cancelCalled) {\r
+ RaiseTaskSetEvent(NaGetTaskSetEventType.CANCELED, "\83p\83b\83P\81[\83W\82Ì\83C\83\93\83X\83g\81[\83\8b\8f\88\97\9d\82ª\83L\83\83\83\93\83Z\83\8b\82³\82ê\82Ü\82µ\82½");\r
+ done = true;\r
+ return;\r
+ }\r
+ }\r
+ pkgListMan.SaveSystemInstalledLogList(); // \83\8d\83O\82Ì\83R\83~\83b\83g\r
+ \r
+ runLocalUpdate();\r
+ \r
+ done = true;\r
+ \r
+ RaiseTaskSetEvent(NaGetTaskSetEventType.COMPLETED, "\8fI\97¹", 100);\r
+ }\r
+ \r
+ \r
+ /// <summary>\r
+ /// \8f\88\97\9d\93à\97e\82Ì\83_\83E\83\93\83\8d\81[\83h\95\94\95ª\82Ì\83T\83u\83\8b\81[\83`\83\93\r
+ /// </summary>\r
+ private void runDownloadInstallers()\r
+ {\r
foreach (Installation inst in Installations) {\r
if (! inst.IsInstallablePackage()) {\r
string msg = string.Format("{0}\82Í\83C\83\93\83X\83g\81[\83\8b\82·\82é\82±\82Æ\82ª\82Å\82«\82Ü\82¹\82ñ", inst.ToString());\r
RaiseTaskSetEvent(NaGetTaskSetEventType.ERROR, string.Format("{0}\82Ì\83C\83\93\83X\83g\81[\83\89\82ð\90³\8fí\82É\83_\83E\83\93\83\8d\81[\83h\82Å\82«\82Ü\82¹\82ñ\82Å\82µ\82½", inst.ToString()));\r
}\r
}\r
+ }\r
+ \r
+ /// <summary>\r
+ /// \83_\83E\83\93\83\8d\81[\83h\82µ\82½\83p\83b\83P\81[\83W\82ª\90®\8d\87\82µ\82½\82©\94Û\82©\83n\83b\83V\83\85\82Å\83`\83F\83b\83N\r
+ /// </summary>\r
+ /// <returns>\90®\8d\87\82µ\82È\82©\82Á\82½\83C\83\93\83X\83g\81[\83\89\82Ì\83\8a\83X\83g</returns>\r
+ private System.Collections.Generic.List<Installation> runCheckHashForInstaller()\r
+ {\r
+ System.Collections.Generic.List<Installation> invalidInstallers = new System.Collections.Generic.List<Installation>();\r
\r
- packageInstallerDownloaded = true;\r
- \r
- {\r
- bool invalid = false;\r
- int i = 0;\r
- foreach (Installation inst in Installations) {\r
- float percent = (CurrentTaskSetIndex+((float)i / Installations.Length))*100f/TaskSetNames.Length;\r
- \r
- if (inst.GetRegisteredHashCount() > 0) {\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.INFO, "\8c\9f\8fØ: "+inst.ToString(), percent);\r
- \r
- if (inst.IsInstallablePackage() && inst.VerifyHashValues() == false) {\r
- invalid = true;\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.WARNING, "\8c\9f\8fØ: "+inst.ToString() + " \94ñ\90®\8d\87", percent);\r
- } else {\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.INFO, "\8c\9f\8fØ: "+inst.ToString() + " OK", percent);\r
- }\r
- }\r
- i++;\r
- }\r
- \r
- // TODO \83n\83b\83V\83\85\82ª\89ó\82ê\82Ä\82¢\82é\82Æ\82«\82Ì\91Î\8dô\r
-// if (invalid && (! AllGet.Util.Confirm("Some packages do not match hash value. Are you really sure to install them [yN]?", false) )) {\r
-// Console.WriteLine("Abort.");\r
-// Environment.Exit(0);\r
-// }\r
- currentTaskSetIndex ++;\r
- }\r
- \r
+ int i = 0;\r
foreach (Installation inst in Installations) {\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.STARTED_TASKSET, inst.ToString());\r
+ float percent = (CurrentTaskSetIndex+((float)i / Installations.Length))*100f/TaskSetNames.Length;\r
\r
- try {\r
- inst.ErrorDataReceived += this.ReceivedErrorData;\r
- inst.OutputDataReceived += this.ReceivedOutputData;\r
- int exitCode = inst.Install();\r
- if (exitCode != 0) {\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.WARNING, "\83C\83\93\83X\83g\81[\83\8b\82ª\90³\8fí\82É\8fI\82¦\82Ä\82¢\82È\82¢\89Â\94\\90«\82ª\82 \82è\82Ü\82·\81B\83C\83\93\83X\83g\81[\83\89\82Ì\8fI\97¹\83R\81[\83h:"+exitCode);\r
- }\r
+ if (inst.GetRegisteredHashCount() > 0) {\r
+ RaiseTaskSetEvent(NaGetTaskSetEventType.INFO, "\8c\9f\8fØ: "+inst.ToString(), percent);\r
\r
- pkgListMan.WriteInstallationLog(inst);\r
- } catch (Exception e) {\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.ERROR, e.Message);\r
- done = true;\r
- return;\r
- }\r
- currentTaskSetIndex ++;\r
- \r
- RaiseTaskSetEvent(NaGetTaskSetEventType.COMPLETED_TASKSET, inst.ToString());\r
- \r
- if (cancelCalled) {\r
- RaiseTaskSetEvent(NaGetTaskSetEventType.CANCELED, "\83p\83b\83P\81[\83W\82Ì\83C\83\93\83X\83g\81[\83\8b\8f\88\97\9d\82ª\83L\83\83\83\93\83Z\83\8b\82³\82ê\82Ü\82µ\82½");\r
- done = true;\r
- return;\r
+ if (inst.IsInstallablePackage() && inst.VerifyHashValues() == false) {\r
+ invalidInstallers.Add(inst);\r
+ RaiseTaskSetEvent(NaGetTaskSetEventType.WARNING, "\8c\9f\8fØ: "+inst.ToString() + " \94ñ\90®\8d\87", percent);\r
+ } else {\r
+ RaiseTaskSetEvent(NaGetTaskSetEventType.INFO, "\8c\9f\8fØ: "+inst.ToString() + " OK", percent);\r
+ }\r
}\r
+ i++;\r
}\r
- pkgListMan.SaveSystemInstalledLogList(); // \83\8d\83O\82Ì\83R\83~\83b\83g\r
- \r
- runLocalUpdate();\r
\r
- done = true;\r
- \r
- RaiseTaskSetEvent(NaGetTaskSetEventType.COMPLETED, "\8fI\97¹", 100);\r
+ return invalidInstallers;\r
}\r
\r
private void runLocalUpdate()\r