X-Git-Url: http://git.sourceforge.jp/view?p=applistation%2FAppliStation.git;a=blobdiff_plain;f=all-get%2FMain.cs;h=a4be97073ca05645eb7d4462f6b087bf3a1fb491;hp=0849124a9cab6974eff9d21600fb4d05c98b9542;hb=4400961321739b1a12162e22619290477333a8e6;hpb=d9df5f704d91251ff9acbe09c30d6dec011b876c
diff --git a/all-get/Main.cs b/all-get/Main.cs
index 0849124..a4be970 100644
--- a/all-get/Main.cs
+++ b/all-get/Main.cs
@@ -2,70 +2,99 @@
using System;
using System.IO;
using System.Collections.Generic;
-using NaGet.Net;
using NaGet.Packages;
using NaGet.Packages.Install;
using NaGet.SubCommands;
+using NaGet.Tasks;
namespace AllGet
{
-
- class DownloadListener
+ sealed class TaskSetEventHandlers
{
- private string line = null;
+ public static void OnTaskSetEvent(object sender, TaskEventArgs e) {
+ switch (e.Type) {
+// case NaGetTaskSetEventType.COMPLETED_TASKSET
+// break;
+ case TaskEventType.COMPLETED:
+ Console.WriteLine("Done.");
+ break;
+ case TaskEventType.STARTED_SUBTASK:
+ Console.Write(" " + e.TaskMessage);
+ break;
+ case TaskEventType.COMPLETED_SUBTASK:
+ Console.WriteLine(" ... Done. [{0}%]", (int) e.ProgressPercent);
+ break;
+ case TaskEventType.INFO:
+ Console.WriteLine(" " + e.TaskMessage);
+ break;
+ case TaskEventType.ERROR:
+ case TaskEventType.WARNING:
+ Console.WriteLine(" [Error]" + e.TaskMessage);
+ break;
+ }
+ }
- ///
- /// lineã®ã³ã³ã½ã¼ã«ä¸ã«ãããé·ã
- ///
- private int lineWidth = 0;
-
- public void OnDownload(object sender, DownloadEventArgs a) {
- if (line != null) {
- lock (line) {
- int newpos = (lineWidth <= 0)? 0 : Console.CursorLeft - lineWidth;
- if (newpos < 0) newpos = 0;
-
- // 空ç½ã§åãã
- Console.CursorLeft = newpos;
- for (int i = 0; i < lineWidth && Console.CursorLeft < Console.BufferWidth; i++) {
- Console.Write(' ');
- }
- Console.CursorLeft = newpos;
-
- line = null; lineWidth = 0;
+ public static void OnDownloadSubTaskEvent(object sender, TaskEventArgs e)
+ {
+ if (sender is NaGet.SubCommands.SubTask.DownloadSubTask) {
+ if (e.Type == TaskEventType.STARTED) {
+ Console.WriteLine();
+ }
+
+ int origPosX = Console.CursorLeft;
+ for (int i = 0; i < Console.WindowWidth - 1; i++) {
+ Console.Write(' ');
+ }
+ Console.CursorLeft = origPosX;
+
+ switch (e.Type) {
+ case TaskEventType.PING:
+ {
+ int origPos = Console.CursorLeft;
+ Console.Write(e.TaskMessage);
+ Console.CursorLeft = origPos;
+ }
+ break;
+ case TaskEventType.WARNING:
+ case TaskEventType.ERROR:
+ Console.WriteLine(" [Error]" + e.TaskMessage);
+ break;
+ default:
+ Console.WriteLine(e.TaskMessage);
+ break;
}
}
-
- switch (a.Type) {
- case DownloadEventType.INITED:
- line = "starting...";
- break;
- case DownloadEventType.CONNECTED:
- case DownloadEventType.DOWNLOADING:
- line = a.TaskMessage;
- break;
- case DownloadEventType.COMPLETED:
- //
- line = null;
- break;
- case DownloadEventType.ERROR:
- Console.Write("interrupted! ERROR!");
- line = null;
- break;
+ }
+
+ public static NaGetTaskQueryResult OnTaskQueryEvent(object sender, NaGetTaskQueryArgs e)
+ {
+ char result = '\u0000';
+ if (e.SelectionFlag == (NaGetTaskQueryResult.CONTINUE | NaGetTaskQueryResult.RETRY | NaGetTaskQueryResult.CANCEL)) {
+ result = AllGet.Util.Query(e.Message + " [y/R/n]?", "yrn", 'r');
+ } else if (e.SelectionFlag == (NaGetTaskQueryResult.RETRY | NaGetTaskQueryResult.CANCEL)) {
+ result = AllGet.Util.Query(e.Message + " [R/n]?", "rn", 'r');
+ } else if (e.SelectionFlag == NaGetTaskQueryResult.CONTINUE) {
+ result = AllGet.Util.Query(e.Message + " [Y]?", "y", 'y');
+ } else {
+ result = AllGet.Util.Query(e.Message + " [Y/n]?", "yn", 'y');
}
- if (line != null) {
- int posOld = Console.CursorLeft;
- Console.Write(line);
- lineWidth = Console.CursorLeft - posOld;
+ switch (result) {
+ case 'y':
+ return NaGetTaskQueryResult.CONTINUE;
+ case 'n':
+ return NaGetTaskQueryResult.CANCEL;
+ case 'r':
+ return NaGetTaskQueryResult.RETRY;
+ default:
+ return NaGetTaskQueryResult.CANCELED_AUTOMATICALLY;
}
}
}
-
+
+
class MainClass
{
- private Downloader downloader;
-
private PackageListsManager pkgListMan;
///
@@ -75,10 +104,6 @@ namespace AllGet
public MainClass()
{
- downloader = new Downloader();
- DownloadListener dl = new DownloadListener();
- downloader.DownloadEventRaised += new EventHandler(dl.OnDownload);
-
pkgListMan = new PackageListsManager();
pkgListMan.LoadPackageLists();
}
@@ -95,31 +120,9 @@ namespace AllGet
public void update(bool downloadPackageListFlag)
{
- NaGet.SubCommands.NaGetUpdate tasks = new NaGet.SubCommands.NaGetUpdate(pkgListMan, downloadPackageListFlag);
- tasks.TaskSetRaised += delegate(object sender, NaGetTaskSetEventArgs e) {
- switch (e.Type) {
-// case NaGetTaskSetEventType.COMPLETED_TASKSET
-// break;
- case NaGetTaskSetEventType.COMPLETED:
- Console.WriteLine("Done.");
- break;
- case NaGetTaskSetEventType.STARTED_TASKSET:
- Console.Write(" " + e.TaskMessage);
- break;
- case NaGetTaskSetEventType.COMPLETED_TASKSET:
- Console.WriteLine(" ... Done. [{0}%]", (int) e.TaskProgressPercent);
- break;
- case NaGetTaskSetEventType.INFO:
- Console.WriteLine(" " + e.TaskMessage);
- break;
- case NaGetTaskSetEventType.ERROR:
- case NaGetTaskSetEventType.WARNING:
- Console.WriteLine(" [Error]" + e.TaskMessage);
- break;
- }
- };
- DownloadListener dl = new DownloadListener();
- tasks.Downloader.DownloadEventRaised += dl.OnDownload;
+ NaGet.SubCommands.NaGetUpdate2 tasks = new NaGet.SubCommands.NaGetUpdate2(pkgListMan, downloadPackageListFlag);
+ tasks.TaskEventRaised += TaskSetEventHandlers.OnTaskSetEvent;
+ tasks.SubTaskEventRaised += TaskSetEventHandlers.OnDownloadSubTaskEvent;
tasks.Run();
}
@@ -185,6 +188,7 @@ namespace AllGet
}
}
+
public void Download(string[] packagenames)
{
Installation[] installations = null;
@@ -215,54 +219,10 @@ namespace AllGet
Environment.Exit(0);
}
- NaGet.SubCommands.NaGetDownloadToCache tasks = new NaGet.SubCommands.NaGetDownloadToCache(pkgListMan, installations);
- tasks.TaskQueryRaised += delegate(object sender, NaGetTaskQueryArgs e) {
- char result = '\u0000';
- if (e.SelectionFlag == (NaGetTaskQueryResult.CONTINUE | NaGetTaskQueryResult.RETRY | NaGetTaskQueryResult.CANCEL)) {
- result = AllGet.Util.Query(e.Message + " [y/R/n]?", "yrn", 'r');
- } else if (e.SelectionFlag == (NaGetTaskQueryResult.RETRY | NaGetTaskQueryResult.CANCEL)) {
- result = AllGet.Util.Query(e.Message + " [R/n]?", "rn", 'r');
- } else if (e.SelectionFlag == NaGetTaskQueryResult.CONTINUE) {
- result = AllGet.Util.Query(e.Message + " [Y]?", "y", 'y');
- } else {
- result = AllGet.Util.Query(e.Message + " [Y/n]?", "yn", 'y');
- }
-
- switch (result) {
- case 'y':
- return NaGetTaskQueryResult.CONTINUE;
- case 'n':
- return NaGetTaskQueryResult.CANCEL;
- case 'r':
- return NaGetTaskQueryResult.RETRY;
- default:
- return NaGetTaskQueryResult.CANCELED_AUTOMATICALLY;
- }
- };
- tasks.TaskSetRaised += delegate(object sender, NaGetTaskSetEventArgs e) {
- switch (e.Type) {
-// case NaGetTaskSetEventType.COMPLETED_TASKSET
-// break;
- case NaGetTaskSetEventType.COMPLETED:
- Console.WriteLine("Done.");
- break;
- case NaGetTaskSetEventType.STARTED_TASKSET:
- Console.Write(" " + e.TaskMessage);
- break;
- case NaGetTaskSetEventType.COMPLETED_TASKSET:
- Console.WriteLine(" ... Done. [{0}%]", (int) e.TaskProgressPercent);
- break;
- case NaGetTaskSetEventType.INFO:
- Console.WriteLine(" " + e.TaskMessage);
- break;
- case NaGetTaskSetEventType.ERROR:
- case NaGetTaskSetEventType.WARNING:
- Console.WriteLine(" [Error] " + e.TaskMessage);
- break;
- }
- };
- DownloadListener dl = new DownloadListener();
- tasks.Downloader.DownloadEventRaised += dl.OnDownload;
+ NaGet.SubCommands.NaGetDownloadToCache2 tasks = new NaGet.SubCommands.NaGetDownloadToCache2(pkgListMan, installations);
+ tasks.TaskEventRaised += TaskSetEventHandlers.OnTaskSetEvent;
+ tasks.SubTaskEventRaised += TaskSetEventHandlers.OnDownloadSubTaskEvent;
+ tasks.TaskQueryRaised += TaskSetEventHandlers.OnTaskQueryEvent;
tasks.Run();
}
@@ -291,13 +251,6 @@ namespace AllGet
installations = new Installation[downloadList.Count];
for (int i = 0; i < installations.Length; i++) {
installations[i] = new Installation(downloadList[i]);
-
- installations[i].Silent = silent; // ãµã¤ã¬ã³ãã¤ã³ã¹ãã¼ã«ã®ãã©ã°ã®è¨å®
-
- if (! installations[i].IsInstallablePackage()) {
- Console.WriteLine("E: Can not install package {0} to your PC.", installations[i].ToString());
- Environment.Exit(1);
- }
}
}
@@ -315,54 +268,10 @@ namespace AllGet
Environment.Exit(0);
}
- NaGet.SubCommands.NaGetInstall tasks = new NaGet.SubCommands.NaGetInstall(pkgListMan, installations);
- tasks.TaskQueryRaised += delegate(object sender, NaGetTaskQueryArgs e) {
- char result = '\u0000';
- if (e.SelectionFlag == (NaGetTaskQueryResult.CONTINUE | NaGetTaskQueryResult.RETRY | NaGetTaskQueryResult.CANCEL)) {
- result = AllGet.Util.Query(e.Message + " [y/R/n]?", "yrn", 'r');
- } else if (e.SelectionFlag == (NaGetTaskQueryResult.RETRY | NaGetTaskQueryResult.CANCEL)) {
- result = AllGet.Util.Query(e.Message + " [R/n]?", "rn", 'r');
- } else if (e.SelectionFlag == NaGetTaskQueryResult.CONTINUE) {
- result = AllGet.Util.Query(e.Message + " [Y]?", "y", 'y');
- } else {
- result = AllGet.Util.Query(e.Message + " [Y/n]?", "yn", 'y');
- }
-
- switch (result) {
- case 'y':
- return NaGetTaskQueryResult.CONTINUE;
- case 'n':
- return NaGetTaskQueryResult.CANCEL;
- case 'r':
- return NaGetTaskQueryResult.RETRY;
- default:
- return NaGetTaskQueryResult.CANCELED_AUTOMATICALLY;
- }
- };
- tasks.TaskSetRaised += delegate(object sender, NaGetTaskSetEventArgs e) {
- switch (e.Type) {
-// case NaGetTaskSetEventType.COMPLETED_TASKSET
-// break;
- case NaGetTaskSetEventType.COMPLETED:
- Console.WriteLine("Done.");
- break;
- case NaGetTaskSetEventType.STARTED_TASKSET:
- Console.Write(" " + e.TaskMessage);
- break;
- case NaGetTaskSetEventType.COMPLETED_TASKSET:
- Console.WriteLine(" ... Done. [{0}%]", (int) e.TaskProgressPercent);
- break;
- case NaGetTaskSetEventType.INFO:
- Console.WriteLine(" " + e.TaskMessage);
- break;
- case NaGetTaskSetEventType.ERROR:
- case NaGetTaskSetEventType.WARNING:
- Console.WriteLine(" [Error] " + e.TaskMessage);
- break;
- }
- };
- DownloadListener dl = new DownloadListener();
- tasks.Downloader.DownloadEventRaised += dl.OnDownload;
+ NaGet.SubCommands.NaGetInstall2 tasks = new NaGet.SubCommands.NaGetInstall2(pkgListMan, installations);
+ tasks.TaskEventRaised += TaskSetEventHandlers.OnTaskSetEvent;
+ tasks.SubTaskEventRaised += TaskSetEventHandlers.OnDownloadSubTaskEvent;
+ tasks.TaskQueryRaised += TaskSetEventHandlers.OnTaskQueryEvent;
tasks.Run();
}
@@ -378,16 +287,14 @@ namespace AllGet
PackageList installedPkgList = new PackageList();
installedPkgList.AddPackages(pkgListMan.GetAllInstalledPackages());
- Uninstallation[] uninstallations = new Uninstallation[packagenames.Length];
+ InstalledPackage[] insPkgs = new InstalledPackage[packagenames.Length];
for (int i = 0; i < packagenames.Length; i++) {
- InstalledPackage pkg = installedPkgList.GetPackageForName(packagenames[i]);
+ insPkgs[i] = installedPkgList.GetPackageForName(packagenames[i]);
- if (pkg == null) {
+ if (insPkgs[i] == null) {
Console.WriteLine("E: could not found package " + packagenames[i]);
Environment.Exit(1);
}
-
- uninstallations[i] = new Uninstallation(pkg);
}
// if (AllGet.Util.Confirm("Do you want to continue [Y/n]?", true) == false) {
@@ -395,29 +302,8 @@ namespace AllGet
// Environment.Exit(0);
// }
- NaGet.SubCommands.NaGetUninstall tasks = new NaGet.SubCommands.NaGetUninstall(pkgListMan, uninstallations);
- tasks.TaskSetRaised += delegate(object sender, NaGetTaskSetEventArgs e) {
- switch (e.Type) {
-// case NaGetTaskSetEventType.COMPLETED_TASKSET
-// break;
- case NaGetTaskSetEventType.COMPLETED:
- Console.WriteLine("Done.");
- break;
- case NaGetTaskSetEventType.STARTED_TASKSET:
- Console.Write(" " + e.TaskMessage);
- break;
- case NaGetTaskSetEventType.COMPLETED_TASKSET:
- Console.WriteLine(" ... Done. [{0}%]", (int) e.TaskProgressPercent);
- break;
- case NaGetTaskSetEventType.INFO:
- Console.WriteLine(" " + e.TaskMessage);
- break;
- case NaGetTaskSetEventType.ERROR:
- case NaGetTaskSetEventType.WARNING:
- Console.WriteLine(" [Error] " + e.TaskMessage);
- break;
- }
- };
+ NaGet.SubCommands.NaGetUninstall2 tasks = new NaGet.SubCommands.NaGetUninstall2(pkgListMan, insPkgs);
+ tasks.TaskEventRaised += TaskSetEventHandlers.OnTaskSetEvent;
tasks.Run();
}