OSDN Git Service

na-get-lib,レポジトリタイプの追加。
authorttp <ttp@users.sourceforge.jp>
Sat, 13 Jun 2009 10:35:23 +0000 (19:35 +0900)
committerttp <ttp@users.sourceforge.jp>
Sat, 13 Jun 2009 10:35:23 +0000 (19:35 +0900)
今まで使っていたソフトリストのフォーマットタイプを"AppliStation Native XML Format 1.0"とした。

na-get-lib/NaGet.Packages/RepositoriesList.cs
na-get-lib/NaGet.SubCommands/NaGetUpdate.cs
repos.list.xml

index a2cd1a4..5b72218 100644 (file)
@@ -60,6 +60,18 @@ namespace NaGet.Packages
        }\r
        \r
        /// <summary>\r
+       /// レポジトリで提供されるソフトリストのフォーマットを返す\r
+       /// </summary>\r
+       public enum RepositoryType : uint\r
+       {\r
+               /// <summary>\r
+               /// AppliStation Native XML Format Version 1.0\r
+               /// </summary>\r
+               [XmlEnum(Name="ASNATIVEv1.0")]\r
+               APPLISTATION_NATIVE_XML_1_0 = 0,\r
+       }\r
+       \r
+       /// <summary>\r
        /// パッケージリストを提供するレポジトリの参照情報を格納するクラス\r
        /// </summary>\r
        public class RepositoryInfo\r
@@ -72,6 +84,12 @@ namespace NaGet.Packages
                public string Name;\r
                \r
                /// <summary>\r
+               /// ソフトリストの形式\r
+               /// </summary>\r
+               [XmlAttribute]\r
+               public RepositoryType Type;\r
+               \r
+               /// <summary>\r
                /// ソフトリストの取得先URL\r
                /// </summary>\r
                public LocationEntry Url;\r
index de47715..43ca4a4 100644 (file)
@@ -120,13 +120,17 @@ namespace NaGet.SubCommands
                                try {\r
                                        Downloader.Download(repo.Url.Href, tmpfileName);\r
                                        \r
-                                       PackageList<Package> pkgList = NaGet.Utils.GetDeserializedObject<PackageList<Package>>(tmpfileName);\r
-                                       pkgList.FixPackageListName(); // PackageListNameとの紐付けを行う\r
-                                       \r
-                                       // RepositoryReferenceの名前を読み込む // TODO RepositoryReferenceの名前を読み込む処理はここでいいのか?\r
-                                       repo.Name = (string.IsNullOrEmpty(pkgList.Name))? repo.Name : pkgList.Name;\r
-                                       \r
-                                       avaiablePackageList.AddPackages(pkgList.Packages);\r
+                                       if (repo.Type == RepositoryType.APPLISTATION_NATIVE_XML_1_0) {\r
+                                               PackageList<Package> pkgList = NaGet.Utils.GetDeserializedObject<PackageList<Package>>(tmpfileName);\r
+                                               pkgList.FixPackageListName(); // PackageListNameとの紐付けを行う\r
+                                               \r
+                                               // RepositoryReferenceの名前を読み込む // TODO RepositoryReferenceの名前を読み込む処理はここでいいのか?\r
+                                               repo.Name = (string.IsNullOrEmpty(pkgList.Name))? repo.Name : pkgList.Name;\r
+                                               \r
+                                               avaiablePackageList.AddPackages(pkgList.Packages);\r
+                                       } else {\r
+                                               RaiseTaskSetEvent(NaGetTaskSetEventType.WARNING, string.Format("Repository {0} is illegal type.", repo.Name ?? repo.Url.Href));\r
+                                       }\r
                                } finally {\r
                                        if (File.Exists(tmpfileName)) {\r
                                                File.Delete(tmpfileName);\r
index 236c29f..8cf59e5 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>\r
 <RepositoriesList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">\r
   <Repositories>\r
-    <RepositoryInfo Name="AppliStation Network" Enabled="true">\r
+    <RepositoryInfo Name="AppliStation Network" Type="ASNATIVEv1.0" Enabled="true">\r
       <Url Href="http://applistation.com/AppliStationNetwork/softlist.xml" />\r
     </RepositoryInfo>\r
   </Repositories>\r