[kde-services-devel] r534 - trunk/newstuff.kde.org

josef at new.kstuff.org josef at new.kstuff.org
Sat Oct 3 19:11:19 CEST 2009


Author: josef
Date: 2009-10-03 19:11:18 +0200 (Sat, 03 Oct 2009)
New Revision: 534

Modified:
   trunk/newstuff.kde.org/repos.php
Log:
- generate list of repositories automatically based on Hotstuff configuration directory



Modified: trunk/newstuff.kde.org/repos.php
===================================================================
--- trunk/newstuff.kde.org/repos.php	2009-10-03 16:32:11 UTC (rev 533)
+++ trunk/newstuff.kde.org/repos.php	2009-10-03 17:11:18 UTC (rev 534)
@@ -6,34 +6,68 @@
   include("header.inc");
 ?>
 
+<?php
+function perlparser($file)
+{
+	$conf = array();
+	$ini = file_get_contents($file);
+	$lines = explode("\n", $ini);
+	foreach($lines as $line)
+	{
+		if ((strlen($line) == 0) or ($line[0] == "#")) :
+			continue;
+		endif;
+		$line = substr($line, 0, strlen($line) - 1);
+		$item = explode("=", $line);
+		if (sizeof($item) == 2) :
+			$item[0] = trim($item[0]);
+			$item[1] = trim($item[1]);
+			$key = substr($item[0], 1, strlen($item[0]) - 1);
+			$value = substr($item[1], 1, strlen($item[1]) - 2);
+			#echo "** $key :: $value<br>\n";
+			$conf[$key] = $value;
+		endif;
+	}
+	return $conf;
+}
+?>
+
 <h3>Repositories on newstuff.kde.org</h3>
 These repositories can be requested by the maintainers of the respective application.
 They're all adhering to the latest GHNS specification as implemented by KNewStuff2.
 <br/><br/>
-<a href="repo/kalzium">Kalzium</a> (<a href="http://newstuff.kde.org/cgi-bin/hotstuff-provider?site=kalzium">provider</a> file)<br/>
-<a href="repo/kate">Kate</a> (<a href="http://newstuff.kde.org/cgi-bin/hotstuff-provider?site=kate">provider</a> file)<br/>
-<a href="repo/khangman">KHangMan</a> (<a href="http://newstuff.kde.org/cgi-bin/hotstuff-provider?site=kdeedu">provider</a> file)<br/>
-<a href="repo/okular">Okular</a> (<a href="http://newstuff.kde.org/cgi-bin/hotstuff-provider?site=okular">provider</a> file)<br/>
-<a href="repo/kdiamond">KDiamond</a> (<a href="http://newstuff.kde.org/cgi-bin/hotstuff-provider?site=kdiamond">provider</a> file)<br/>
-<a href="repo/kanagram">KAnagram</a> (<a href="http://newstuff.kde.org/cgi-bin/hotstuff-provider?site=kanagram">provider</a> file)<br/>
-<a href="repo/kgoldrunner">KGoldrunner</a> (<a href="http://newstuff.kde.org/cgi-bin/hotstuff-provider?site=kgoldrunner-dxs">provider</a> file)<br/>
-<a href="repo/kblocks">KBlocks</a> (<a href="http://newstuff.kde.org/cgi-bin/hotstuff-provider?site=kblocks">provider</a> file)<br/>
-<a href="repo/parley">Parley</a> (<a href="http://newstuff.kde.org/cgi-bin/hotstuff-provider?site=parleypractice-dxs">provider</a> file)<br/>
-<a href="repo/ktictactux">KTicTacTux</a> (<a href="http://newstuff.kde.org/cgi-bin/hotstuff-provider?site=ktictactux">provider</a> file)<br/>
-<a href="repo/ksysguard">KSysGuard</a> (<a href="http://newstuff.kde.org/cgi-bin/hotstuff-provider?site=ksysguard">provider</a> file)<br/>
-<a href="repo/kpat">KPat</a> (<a href="http://newstuff.kde.org/cgi-bin/hotstuff-provider?site=kpat">provider</a> file)<br/>
-<a href="repo/kbounce">KBounce</a> (<a href="http://newstuff.kde.org/cgi-bin/hotstuff-provider?site=kbounce">provider</a> file)<br/>
-<a href="repo/kbreakout">KBreakout</a> (<a href="http://newstuff.kde.org/cgi-bin/hotstuff-provider?site=kbreakout">provider</a> file)<br/>
-<a href="repo/ksirk">KsirK</a> (<a href="http://newstuff.kde.org/cgi-bin/hotstuff-provider?site=ksirk">provider</a> file)<br/>
-<a href="repo/palapeli">Palapeli</a> (<a href="http://newstuff.kde.org/cgi-bin/hotstuff-provider?site=palapeli">provider</a> file)<br/>
-<a href="repo/ktron">KTron</a> (<a href="http://newstuff.kde.org/cgi-bin/hotstuff-provider?site=ktron">provider</a> file)<br/>
-<a href="repo/publictransport">publicTransport</a> (<a href="http://newstuff.kde.org/cgi-bin/hotstuff-provider?site=publictransport">provider</a> file)<br/>
-<a href="repo/cantor">Cantor</a> (<a href="http://newstuff.kde.org/cgi-bin/hotstuff-provider?site=cantor">provider</a> file) [WebDAV]<br/>
 
-<!--
-<a href="repo/marble">Marble</a> (<a href="http://newstuff.kde.org/cgi-bin/hotstuff-provider?site=marble">provider</a> file)<br/>
--->
+<?php
+$confdir = "/etc/hotstuff.d";
+$handle = opendir($confdir);
+while (false !== ($file = readdir($handle)))
+{
+	$excl = array(".", "..", ".svn");
+	if (!in_array($file, $excl))
+	{
+		#echo "* $file<br>\n";
 
+		#$conf = parse_ini_file("$confdir/$file", false, INI_SCANNER_RAW);
+		#$conf = parse_ini_string($ini, false);
+		$conf = perlparser("$confdir/$file");
+
+		$name = $conf["providername"];
+		$sysname = str_replace(".conf", "", $file);
+
+		echo "<a href='repo/$sysname'>$name</a> ";
+		echo "(<a href='http://newstuff.kde.org/cgi-bin/hotstuff-provider?site=$sysname'>provider</a> file, ";
+		echo "<a href='http://newstuff.kde.org/cgi-bin/hotstuff-stuff?site=$sysname&format=rss'>RSS</a> feed) ";
+		if ($conf["repository"]) :
+			echo "[SVN]";
+		else :
+			echo "[WebDAV]";
+		endif;
+		echo "<br/>";
+	}
+}
+closedir($handle);
+?>
+
 <h3>External repositories</h3>
 A number of other repositories exist. They might support the GHNS spec or the older
 KNewStuff-only format.



More information about the kde-services-devel mailing list