summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2012-06-17 11:25:11 +0200
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2012-06-17 11:25:11 +0200
commita3d9ace41ecbdfe72486dd9ec4d0dabf5eec299c (patch)
tree7e155fdd8208589a3ee71f4102b20224def069f3
parentd3ddad95be5acac99b4f6e2a45336cc2b99a2ab2 (diff)
downloadrockbox-a3d9ace41ecbdfe72486dd9ec4d0dabf5eec299c.tar.gz
rockbox-a3d9ace41ecbdfe72486dd9ec4d0dabf5eec299c.zip
Support release-candidate entry format for releases.
The release-candiate entries provide both version and URL instead of only a version entry and requiring the URL to be constructed separately. Since it's easy to identify the format support both for release entries for improved flexibility -- if the server URLs ever change the server only needs to get updated to use the extended format. Change-Id: If5c669b72d7acd6ac648c5f42dd844ae36904df6
-rw-r--r--rbutil/rbutilqt/base/serverinfo.cpp29
1 files changed, 19 insertions, 10 deletions
diff --git a/rbutil/rbutilqt/base/serverinfo.cpp b/rbutil/rbutilqt/base/serverinfo.cpp
index eef7b1bdfe..995cc1fe74 100644
--- a/rbutil/rbutilqt/base/serverinfo.cpp
+++ b/rbutil/rbutilqt/base/serverinfo.cpp
@@ -71,13 +71,22 @@ void ServerInfo::readBuildInfo(QString file)
71 QString releaseUrl; 71 QString releaseUrl;
72 QString relCandidateVersion; 72 QString relCandidateVersion;
73 QString relCandidateUrl; 73 QString relCandidateUrl;
74 // support two formats for "release" sections:
75 // - <target>=<version>. In this case the URL is constructed.
76 // - <target>=<version>,<url>.
74 info.beginGroup("release"); 77 info.beginGroup("release");
75 if(keys.contains(platforms.at(i))) { 78 if(keys.contains(platforms.at(i))) {
76 releaseVersion = info.value(platforms.at(i)).toString(); 79 QStringList entry = info.value(platforms.at(i)).toStringList();
77 // construct release download URL 80 releaseVersion = entry.at(0);
78 releaseUrl = releaseBaseUrl; 81 if(entry.size() > 1) {
79 releaseUrl.replace("%MODEL%", platforms.at(i)); 82 releaseUrl = entry.at(1);
80 releaseUrl.replace("%RELVERSION%", releaseVersion); 83 }
84 else {
85 // construct release download URL
86 releaseUrl = releaseBaseUrl;
87 releaseUrl.replace("%MODEL%", platforms.at(i));
88 releaseUrl.replace("%RELVERSION%", releaseVersion);
89 }
81 } 90 }
82 info.endGroup(); 91 info.endGroup();
83 // "release-candidate" section currently only support the 2nd format. 92 // "release-candidate" section currently only support the 2nd format.
@@ -91,6 +100,11 @@ void ServerInfo::readBuildInfo(QString file)
91 } 100 }
92 info.endGroup(); 101 info.endGroup();
93 102
103 // "bleeding" section (development) does not provide individual
104 // information but only a global revision value.
105 QString develUrl = develBaseUrl;
106 develUrl.replace("%MODEL%", platforms.at(i));
107 develUrl.replace("%RELVERSION%", developmentRevision);
94 108
95 info.beginGroup("status"); 109 info.beginGroup("status");
96 QString status = tr("Unknown"); 110 QString status = tr("Unknown");
@@ -109,11 +123,6 @@ void ServerInfo::readBuildInfo(QString file)
109 break; 123 break;
110 } 124 }
111 info.endGroup(); 125 info.endGroup();
112 // release and development URLs are not provided by the server but
113 // constructed.
114 QString develUrl = develBaseUrl;
115 develUrl.replace("%MODEL%", platforms.at(i));
116 develUrl.replace("%RELVERSION%", developmentRevision);
117 // set variants (if any) 126 // set variants (if any)
118 for(int j = 0; j < variants.size(); ++j) { 127 for(int j = 0; j < variants.size(); ++j) {
119 setPlatformValue(variants.at(j), ServerInfo::CurStatus, status); 128 setPlatformValue(variants.at(j), ServerInfo::CurStatus, status);