@@ -1325,25 +1325,56 @@ auto ProvisionalTplParser::parseNotice(const QStringList &sListArgs)
1325
1325
// ----------------------------------------------------------------------------
1326
1326
1327
1327
auto ProvisionalTplParser::parseOBS (const QStringList &sListArgs ) -> QString {
1328
+ QRegularExpressionMatch match;
1329
+ static QRegularExpression findVersion (
1330
+ QStringLiteral (" \\ s\\ d{1,2}\\ .\\ d{2}\\ ]" ));
1331
+
1328
1332
QString sOutput (" " );
1329
1333
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
+ }
1339
1368
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 <EOF > "
1370
+ " /etc/apt/sources.list.d/" +
1371
+ sListArgs .constFirst () +
1372
+ " .sources\n Types: deb\n URIs: "
1373
+ " http://download.opensuse.org/repositories/" +
1374
+ sListArgs .constFirst () + " /xUbuntu_" + sListVersions .constFirst () +
1375
+ " /\n Suites: /\n Signed-By: /etc/apt/keyrings/" + sListArgs .constFirst () +
1376
+ " .gpg\n EOF</pre></div></div><p></p></"
1377
+ " div></div>" ;
1347
1378
}
1348
1379
1349
1380
sOutput += ProvisionalTplParser::insertBox (
@@ -1352,21 +1383,35 @@ auto ProvisionalTplParser::parseOBS(const QStringList &sListArgs) -> QString {
1352
1383
" das System gefährden." ));
1353
1384
1354
1385
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
+ }
1362
1406
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 - < 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 "
1370
1415
" </pre></div></div><p></p></div></div>" ;
1371
1416
}
1372
1417
0 commit comments