Skip to content

Commit ba6bbe6

Browse files
committed
Tpl: OBS
1 parent 0694867 commit ba6bbe6

File tree

2 files changed

+76
-31
lines changed

2 files changed

+76
-31
lines changed

application/parser/provisionaltplparser.cpp

+75-30
Original file line numberDiff line numberDiff line change
@@ -1325,25 +1325,56 @@ auto ProvisionalTplParser::parseNotice(const QStringList &sListArgs)
13251325
// ----------------------------------------------------------------------------
13261326

13271327
auto ProvisionalTplParser::parseOBS(const QStringList &sListArgs) -> QString {
1328+
QRegularExpressionMatch match;
1329+
static QRegularExpression findVersion(
1330+
QStringLiteral("\\s\\d{1,2}\\.\\d{2}\\]"));
1331+
13281332
QString sOutput("");
13291333
sOutput = QString::fromUtf8(
1330-
"<p>Um das Paket aus einer vom "
1331-
"[:Open_Build_Service:Open Build Service] "
1332-
"generierten Paketquelle zu installieren, muss "
1333-
"man zuerst die [:Paketquellen_freischalten:"
1334-
"Paketquelle freischalten], indem man folgenden"
1335-
" Befehl mit [:sudo:root-Rechten] im "
1336-
"[:Terminal:] ausführt: </p>\n");
1337-
1338-
if (!sListArgs.isEmpty()) {
1334+
"<p>Um das Paket aus einer vom [:Open Build Service:] generierten "
1335+
"Paketquelle zu installieren, muss man zuerst die "
1336+
"[:Paketquellen_freischalten:Paketquelle freischalten], indem man "
1337+
"folgenden Befehl mit [:sudo:root-Rechten] im [:Terminal:] ausführt:"
1338+
"</p>\n");
1339+
1340+
QString sClass = "thirdpartyrepo-outer";
1341+
QStringList sListVersions;
1342+
for (const auto &sArg : sListArgs) {
1343+
if (m_TestedWithMap.contains(sArg.toLower())) {
1344+
if ((match = findVersion.match(m_TestedWithMap.value(sArg))).hasMatch()) {
1345+
sListVersions << match.captured().trimmed().remove(']');
1346+
sClass += " thirdpartyrepo-version-" + sListVersions.last();
1347+
}
1348+
}
1349+
}
1350+
sListVersions.sort();
1351+
1352+
if (!sListVersions.isEmpty()) {
1353+
sOutput += "<div class=\"" + sClass +
1354+
"\"><div class=\"contents\"><p>"
1355+
"</p><div class=\"bash\"><div class=\"contents\"><div "
1356+
"class=\"selector\"><strong>Version:</strong> ";
1357+
for (int i = 0; i < sListVersions.size(); i++) {
1358+
if (0 == i) {
1359+
sOutput +=
1360+
"<a class=\"active\" href=\"#\">" + sListVersions.at(i) + "</a>";
1361+
} else {
1362+
sOutput += "<a class=\"\" href=\"#\">" + sListVersions.at(i) + "</a>";
1363+
}
1364+
if (i < sListVersions.size() - 1) {
1365+
sOutput += "<span class=\"linklist\"> | </span>";
1366+
}
1367+
}
13391368
sOutput +=
1340-
"<div class=\"thirdpartyrepo-outer "
1341-
"thirdpartyrepo-version-14.04\"><div class=\"contents\"><p>"
1342-
"</p><div class=\"bash\"><div class=\"contents\"><pre "
1343-
"class=\"notranslate\">sudo add-apt-repository 'deb http://"
1344-
"download.opensuse.org/repositories/" +
1345-
sListArgs[0] +
1346-
"/xUbuntu_VERSION/ /'</pre></div></div><p></p></div></div>";
1369+
"</div><pre class=\"notranslate\">sudo cat &lt;EOF &gt; "
1370+
"/etc/apt/sources.list.d/" +
1371+
sListArgs.constFirst() +
1372+
".sources\nTypes: deb\nURIs: "
1373+
"http://download.opensuse.org/repositories/" +
1374+
sListArgs.constFirst() + "/xUbuntu_" + sListVersions.constFirst() +
1375+
"/\nSuites: /\nSigned-By: /etc/apt/keyrings/" + sListArgs.constFirst() +
1376+
".gpg\nEOF</pre></div></div><p></p></"
1377+
"div></div>";
13471378
}
13481379

13491380
sOutput += ProvisionalTplParser::insertBox(
@@ -1352,21 +1383,35 @@ auto ProvisionalTplParser::parseOBS(const QStringList &sListArgs) -> QString {
13521383
" das System gefährden."));
13531384

13541385
sOutput += QString::fromUtf8(
1355-
"<p>Anschließend sollte die [:Fremdquelle:] "
1356-
"authentifiziert werden. Dazu lädt man sich "
1357-
"mit dem folgenden Befehlen den benötigten "
1358-
"Schlüssel herunter und fügt diesen dem "
1359-
"Schlüsselbund hinzu:</p>");
1360-
1361-
if (!sListArgs.isEmpty()) {
1386+
"<p>Anschließend sollte die [:Fremdquelle:] authentifiziert werden. Dazu "
1387+
"lädt man sich mit den folgenden Befehlen den benötigten Schlüssel "
1388+
"herunter und legt diesen an dem dafür vorgesehenen Ort ab:</p>");
1389+
1390+
if (!sListVersions.isEmpty()) {
1391+
sOutput += "<div class=\"" + sClass +
1392+
"\"><div class=\"contents\"><p>"
1393+
"</p><div class=\"bash\"><div class=\"contents\"><div "
1394+
"class=\"selector\"><strong>Version:</strong> ";
1395+
for (int i = 0; i < sListVersions.size(); i++) {
1396+
if (0 == i) {
1397+
sOutput +=
1398+
"<a class=\"active\" href=\"#\">" + sListVersions.at(i) + "</a>";
1399+
} else {
1400+
sOutput += "<a class=\"\" href=\"#\">" + sListVersions.at(i) + "</a>";
1401+
}
1402+
if (i < sListVersions.size() - 1) {
1403+
sOutput += "<span class=\"linklist\"> | </span>";
1404+
}
1405+
}
13621406
sOutput +=
1363-
"<div class=\"thirdpartyrepo-outer "
1364-
"thirdpartyrepo-version-14.04\"><div class=\"contents\"><p>"
1365-
"</p><div class=\"bash\"><div class=\"contents\"><pre "
1366-
"class=\"notranslate\">wget http://download.opensuse.org"
1367-
"/repositories/" +
1368-
sListArgs[0] +
1369-
"/xUbuntu_VERSION/Release.key<br>sudo apt-key add - &lt; Release.key "
1407+
"</div><pre "
1408+
"class=\"notranslate\">wget -q -O - "
1409+
"http://download.opensuse.org/repositories/" +
1410+
sListArgs.constFirst() + "/xUbuntu_" + sListVersions.constFirst() +
1411+
"/Release.key | gpg --dearmor | sudo tee "
1412+
"/etc/apt/keyrings/" +
1413+
sListArgs.constFirst() +
1414+
".gpg > /dev/null "
13701415
"</pre></div></div><p></p></div></div>";
13711416
}
13721417

application/parser/provisionaltplparser.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ class ProvisionalTplParser {
7070
static auto parseKnowledge(const QStringList &sListArgs) -> QString;
7171
static auto parseLeft(const QStringList &sListArgs) -> QString;
7272
static auto parseNotice(const QStringList &sListArgs) -> QString;
73-
static auto parseOBS(const QStringList &sListArgs) -> QString;
73+
auto parseOBS(const QStringList &sListArgs) -> QString;
7474
static auto parseOverview(const QStringList &sListArgs) -> QString;
7575
static auto parseOverview2(const QStringList &sListArgs) -> QString;
7676
static auto parsePackage(const QStringList &sListArgs) -> QString;

0 commit comments

Comments
 (0)