OSDN Git Service

na-get-lib,all-getについてアップデート処理を新方式(NaGetUpdate2)に変更。
[applistation/AppliStation.git] / all-get / Main.cs
index 39420c9..1091025 100644 (file)
@@ -96,7 +96,7 @@ namespace AllGet
                \r
                public void update(bool downloadPackageListFlag)\r
                {\r
-                       NaGet.SubCommands.NaGetUpdate tasks = new NaGet.SubCommands.NaGetUpdate(pkgListMan, downloadPackageListFlag);\r
+                       NaGet.SubCommands.NaGetUpdate2 tasks = new NaGet.SubCommands.NaGetUpdate2(pkgListMan, downloadPackageListFlag);\r
                        tasks.TaskEventRaised += delegate(object sender, TaskEventArgs e) { \r
                                switch (e.Type) {\r
 //                                     case NaGetTaskSetEventType.COMPLETED_TASKSET\r
@@ -119,8 +119,27 @@ namespace AllGet
                                                break;\r
                                }\r
                        };\r
-                       DownloadListener dl = new DownloadListener();\r
-                       tasks.Downloader.DownloadEventRaised += dl.OnDownload;\r
+                       tasks.SubTaskEventRaised += delegate (object sender, TaskEventArgs e) {\r
+                               if (sender is NaGet.SubCommands.SubTask.DownloadSubTask) {\r
+                                       if (e.Type == TaskEventType.STARTED) {\r
+                                               Console.WriteLine();\r
+                                       }\r
+                                       \r
+                                       int origPosX = Console.CursorLeft;\r
+                                       for (int i = 0; i < Console.WindowWidth - 1; i++) {\r
+                                               Console.Write(' ');\r
+                                       }\r
+                                       Console.CursorLeft = origPosX;\r
+                                       \r
+                                       if (e.Type == TaskEventType.PING) {\r
+                                               int origPos = Console.CursorLeft;\r
+                                               Console.Write(e.TaskMessage);\r
+                                               Console.CursorLeft = origPos;\r
+                                       } else {\r
+                                               Console.WriteLine(e.TaskMessage);\r
+                                       }\r
+                               }\r
+                       };\r
                        \r
                        tasks.Run();\r
                }\r