summaryrefslogtreecommitdiff
path: root/rbutil/rbutilqt/base/serverinfo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'rbutil/rbutilqt/base/serverinfo.cpp')
-rw-r--r--rbutil/rbutilqt/base/serverinfo.cpp157
1 files changed, 0 insertions, 157 deletions
diff --git a/rbutil/rbutilqt/base/serverinfo.cpp b/rbutil/rbutilqt/base/serverinfo.cpp
deleted file mode 100644
index 5fee75f689..0000000000
--- a/rbutil/rbutilqt/base/serverinfo.cpp
+++ /dev/null
@@ -1,157 +0,0 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 *
9 * Copyright (C) 2010 by Dominik Wenger
10 *
11 * All files in this archive are subject to the GNU General Public License.
12 * See the file COPYING in the source tree root for full license agreement.
13 *
14 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
15 * KIND, either express or implied.
16 *
17 ****************************************************************************/
18
19#include "serverinfo.h"
20#include "rbsettings.h"
21#include "systeminfo.h"
22#include "Logger.h"
23
24ServerInfo* ServerInfo::infoInstance = nullptr;
25
26ServerInfo* ServerInfo::instance()
27{
28 if (infoInstance == nullptr) {
29 infoInstance = new ServerInfo();
30 }
31 return infoInstance;
32}
33
34// server infos
35const static struct {
36 ServerInfo::ServerInfos info;
37 const char* name;
38 const char* def;
39} ServerInfoList[] = {
40 { ServerInfo::CurReleaseVersion, "release/:platform:", "" },
41 { ServerInfo::CurReleaseUrl, "release/:platform:", "" },
42 { ServerInfo::RelCandidateVersion, "release-candidate/:platform:", "" },
43 { ServerInfo::RelCandidateUrl, "release-candidate/:platform:", "" },
44 { ServerInfo::DailyVersion, "daily/:platform:", "" },
45 { ServerInfo::DailyUrl, "daily/:platform:", "" },
46 { ServerInfo::CurStatus, "status/:platform:", "-1" },
47 { ServerInfo::BleedingRevision, "bleeding/rev", "" },
48 { ServerInfo::BleedingDate, "bleeding/timestamp", "" },
49 { ServerInfo::CurDevelUrl, "", "" },
50};
51
52void ServerInfo::readBuildInfo(QString file)
53{
54 if (serverSettings)
55 delete serverSettings;
56 serverSettings = new QSettings(file, QSettings::IniFormat);
57}
58
59
60QVariant ServerInfo::platformValue(enum ServerInfos info, QString platform)
61{
62 // locate setting item in server info file
63 int i = 0;
64 while(ServerInfoList[i].info != info)
65 i++;
66
67 // replace setting name
68 if(platform.isEmpty())
69 platform = RbSettings::value(RbSettings::CurrentPlatform).toString();
70
71 // split of variant for platform.
72 // we can have an optional variant part in the platform string.
73 // For build info we don't use that.
74 platform = platform.split('.').at(0);
75
76 QString s = ServerInfoList[i].name;
77 s.replace(":platform:", platform);
78
79 // get value
80 QVariant value = QString();
81 if(!s.isEmpty() && serverSettings)
82 value = serverSettings->value(s, ServerInfoList[i].def);
83
84 // depending on the actual value we need more replacements.
85 switch(info) {
86 case CurReleaseVersion:
87 case RelCandidateVersion:
88 case DailyVersion:
89 value = value.toStringList().at(0);
90 break;
91 case CurReleaseUrl:
92 case RelCandidateUrl:
93 case DailyUrl:
94 {
95 QString version = value.toStringList().at(0);
96 if(value.toStringList().size() > 1)
97 value = value.toStringList().at(1);
98 else if(!version.isEmpty() && info == CurReleaseUrl)
99 value = SystemInfo::value(SystemInfo::BuildUrl,
100 SystemInfo::BuildRelease).toString()
101 .replace("%MODEL%", platform)
102 .replace("%RELVERSION%", version);
103 else if(!version.isEmpty() && info == RelCandidateUrl)
104 value = SystemInfo::value(SystemInfo::BuildUrl,
105 SystemInfo::BuildCandidate).toString()
106 .replace("%MODEL%", platform)
107 .replace("%RELVERSION%", version);
108 else if(!version.isEmpty() && info == DailyUrl)
109 value = SystemInfo::value(SystemInfo::BuildUrl,
110 SystemInfo::BuildDaily).toString()
111 .replace("%MODEL%", platform)
112 .replace("%RELVERSION%", version);
113 }
114 break;
115 case CurDevelUrl:
116 value = SystemInfo::value(SystemInfo::BuildUrl,
117 SystemInfo::BuildCurrent).toString()
118 .replace("%MODEL%", platform);
119 break;
120 case BleedingDate:
121 // TODO: get rid of this, it's location specific.
122 value = QDateTime::fromString(value.toString(),
123 "yyyyMMddThhmmssZ").toString(Qt::ISODate);
124 break;
125
126 default:
127 break;
128 }
129
130 LOG_INFO() << "Server:" << value;
131 return value;
132}
133
134QString ServerInfo::statusAsString(QString platform)
135{
136 QString value;
137 switch(platformValue(CurStatus, platform).toInt())
138 {
139 case STATUS_RETIRED:
140 value = tr("Stable (Retired)");
141 break;
142 case STATUS_UNUSABLE:
143 value = tr("Unusable");
144 break;
145 case STATUS_UNSTABLE:
146 value = tr("Unstable");
147 break;
148 case STATUS_STABLE:
149 value = tr("Stable");
150 break;
151 default:
152 value = tr("Unknown");
153 break;
154 }
155
156 return value;
157}