OSDN Git Service

AppliStation-All,インストール関連設定を追加。
[applistation/AppliStation.git] / na-get-lib / NaGet.SubCommands / NaGetInstall.cs
index b31431e..037242c 100644 (file)
@@ -96,16 +96,28 @@ namespace NaGet.SubCommands
                                        \r
                                        packageInstallerDownloaded = true;\r
                                        \r
+                                       \r
+                                       RaiseTaskSetEvent(NaGetTaskSetEventType.STARTED_TASKSET, TaskSetNames[currentTaskSetIndex]);\r
+                                       \r
                                        // ハッシュの壊れているインストーラを取得\r
                                        invalidInstallers = runCheckHashForInstaller();\r
                                        \r
                                        // ハッシュが壊れているときの対策\r
                                        if (invalidInstallers.Count > 0) {\r
-                                               string msg = string.Format("{0}個のパッケージでファイルが壊れている可能性があります\n強制的にインストールを続行しますか?",\r
-                                                                          invalidInstallers.Count);\r
-                                               NaGetTaskQueryResult result = RaiseTaskSetQueryEvent(msg, NaGetTaskQueryResult.CONTINUE\r
-                                                                                                    | NaGetTaskQueryResult.RETRY\r
-                                                                                                    | NaGetTaskQueryResult.CANCEL);\r
+                                               System.Text.StringBuilder invalidInstallerNames = new System.Text.StringBuilder();\r
+                                               foreach (Installation invalidInst in invalidInstallers) {\r
+                                                       invalidInstallerNames.AppendFormat(" - {0}\n", invalidInst.ToString());\r
+                                               }\r
+                                               \r
+                                               string msg = string.Format("以下の{0}個のパッケージでファイルが壊れている可能性があります。\n{1}\n強制的にインストールを続行しますか?",\r
+                                                                          invalidInstallers.Count, invalidInstallerNames.ToString());\r
+                                               NaGetTaskQueryResult result = NaGetTaskQueryResult.CANCEL;\r
+                                               \r
+                                               if (!cancelCalled) {\r
+                                                       result = RaiseTaskSetQueryEvent(msg, NaGetTaskQueryResult.CONTINUE\r
+                                                                                       | NaGetTaskQueryResult.RETRY\r
+                                                                                       | NaGetTaskQueryResult.CANCEL);\r
+                                               }\r
                                                \r
                                                switch (result) {\r
                                                        case NaGetTaskQueryResult.CONTINUE:\r
@@ -128,6 +140,7 @@ namespace NaGet.SubCommands
                                                }\r
                                        }\r
                                        currentTaskSetIndex ++;\r
+                                       RaiseTaskSetEvent(NaGetTaskSetEventType.COMPLETED_TASKSET, TaskSetNames[currentTaskSetIndex-1]);\r
                                }\r
                        }\r
                        \r
@@ -217,7 +230,7 @@ namespace NaGet.SubCommands
                                        currentTaskSetIndex ++;\r
                                        \r
                                        if (inst.Downloaded) { // 正常終了\r
-                                               RaiseTaskSetEvent(NaGetTaskSetEventType.COMPLETED_TASKSET, TaskSetNames[currentTaskSetIndex]);\r
+                                               RaiseTaskSetEvent(NaGetTaskSetEventType.COMPLETED_TASKSET, TaskSetNames[currentTaskSetIndex-1]);\r
                                        } else { // インストールが完了せずに終わった=失敗=エラー\r
                                                RaiseTaskSetEvent(NaGetTaskSetEventType.ERROR, string.Format("{0}のインストーラを正常にダウンロードできませんでした", inst.ToString()));\r
                                                done = true;\r
@@ -225,7 +238,11 @@ namespace NaGet.SubCommands
                                        }\r
                                        \r
                                        RaiseTaskSetEvent(NaGetTaskSetEventType.STARTED_TASKSET, TaskSetNames[currentTaskSetIndex]);\r
-                                       if (scanner.HasScanner) {\r
+                                       if (! NaGet.Env.EnableScanInstallerFile) {\r
+                                               RaiseTaskSetEvent(NaGetTaskSetEventType.INFO, string.Format("ウイルススキャンを行わない設定のため、ダウンロードしたファイルはウイルススキャンされませんでした"));\r
+                                       } else if (!scanner.HasScanner) {\r
+                                               RaiseTaskSetEvent(NaGetTaskSetEventType.INFO, string.Format("ダウンロードしたファイルはウイルススキャンされませんでした(ウイルススキャンソフトが検出できませんでした)"));\r
+                                       } else {\r
                                                try {\r
                                                        inst.ScanInstallerFile(scanner);\r
                                                } catch (System.Runtime.InteropServices.COMException ex) {\r
@@ -240,11 +257,15 @@ namespace NaGet.SubCommands
                                                        done = true;\r
                                                        return;\r
                                                }\r
-                                       } else {\r
-                                               RaiseTaskSetEvent(NaGetTaskSetEventType.INFO, string.Format("ダウンロードしたファイルはウイルススキャンされませんでした(ウイルススキャンソフトが検出できませんでした)"));\r
                                        }\r
                                        currentTaskSetIndex ++;\r
-                                       RaiseTaskSetEvent(NaGetTaskSetEventType.COMPLETED_TASKSET, TaskSetNames[currentTaskSetIndex]);\r
+                                       RaiseTaskSetEvent(NaGetTaskSetEventType.COMPLETED_TASKSET, TaskSetNames[currentTaskSetIndex-1]);\r
+                                       \r
+                                       if (cancelCalled) {\r
+                                               RaiseTaskSetEvent(NaGetTaskSetEventType.CANCELED, "パッケージのインストール処理がキャンセルされました");\r
+                                               done = true;\r
+                                               return;\r
+                                       }\r
                                }\r
                        }\r
                }\r