diff options
Diffstat (limited to 'rbutil/rbutilqt/base/serverinfo.cpp')
-rw-r--r-- | rbutil/rbutilqt/base/serverinfo.cpp | 157 |
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 | |||
24 | ServerInfo* ServerInfo::infoInstance = nullptr; | ||
25 | |||
26 | ServerInfo* ServerInfo::instance() | ||
27 | { | ||
28 | if (infoInstance == nullptr) { | ||
29 | infoInstance = new ServerInfo(); | ||
30 | } | ||
31 | return infoInstance; | ||
32 | } | ||
33 | |||
34 | // server infos | ||
35 | const 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 | |||
52 | void ServerInfo::readBuildInfo(QString file) | ||
53 | { | ||
54 | if (serverSettings) | ||
55 | delete serverSettings; | ||
56 | serverSettings = new QSettings(file, QSettings::IniFormat); | ||
57 | } | ||
58 | |||
59 | |||
60 | QVariant 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 | |||
134 | QString 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 | } | ||