diff options
author | Marcin Juszkiewicz <hrw@openembedded.org> | 2007-12-06 20:04:26 +0000 |
---|---|---|
committer | Marcin Juszkiewicz <hrw@openembedded.org> | 2007-12-06 20:04:26 +0000 |
commit | fb89e1265c288b619f04c0f6c06193c8e1a0a46d (patch) | |
tree | 35a2806eff0093b32533375a658b1a2cf0f02e38 | |
parent | a780b447814eb7c2c42251236d944dbb277d79d7 (diff) |
Ångström autobuilder: new RSS generator
-rwxr-xr-x | contrib/angstrom/build-release.sh | 2 | ||||
-rw-r--r-- | contrib/angstrom/rss.php | 57 | ||||
-rw-r--r-- | contrib/angstrom/rss2.php | 63 |
3 files changed, 95 insertions, 27 deletions
diff --git a/contrib/angstrom/build-release.sh b/contrib/angstrom/build-release.sh index e487669e0d..7ba5f8bf3b 100755 --- a/contrib/angstrom/build-release.sh +++ b/contrib/angstrom/build-release.sh @@ -29,7 +29,7 @@ do_build() { do_report_success() { - echo "$(date -u +%Y%M%d%H%M) $target ($BUILD_MODE) built for $machine" >> autobuilder.log + echo "$(date -u +%s) $target $BUILD_MODE $machine" >> autobuilder.log } # No graphics diff --git a/contrib/angstrom/rss.php b/contrib/angstrom/rss.php index 8970ba1797..cf5a9e0218 100644 --- a/contrib/angstrom/rss.php +++ b/contrib/angstrom/rss.php @@ -1,43 +1,48 @@ -<? print('<?xml version="1.0" encoding="utf-8"?>');?> +<?php echo ('<?xml version="1.0" encoding="utf-8"?>'); ?> <rss version="2.0" xml:base="http://www.angstrom-distribution.org/unstable/autobuild/" xmlns:dc="http://purl.org/dc/elements/1.1/"> -<channel> - <title>Ångstrom autobuilder updates </title> - <link>http://www.angstrom-distribution.org/unstable/autobuild</link> - <description></description> - <language>en</language> + <channel> + <title>Ångström autobuilder updates</title> + <link>http://www.angstrom-distribution.org/unstable/autobuild/</link> + <description></description> + <language>en</language> <?php $base_path = "/home/angstrom/website/unstable/autobuild"; -if ($handle = opendir("$base_path")) { +if ($handle = opendir("$base_path")) +{ + while (false !== ($file = readdir($handle))) + { + if(!(is_dir($file) && $file != "." && $file != "..")) + { + continue; + } - while (false !== ($file = readdir($handle))) { - if(is_dir($file) && $file != "." && $file != "..") { - $second_handle = opendir("$base_path/$file/"); - while (false !== ($file2 = readdir($second_handle))) { - if(is_file("/$base_path/$file/$file2")) { - $fmtime = filemtime("$file/$file2"); + $second_handle = opendir("$base_path/$file/"); -print("<item>\n"); -print("<title>$file/$file2 uploaded</title>\n"); -print(" <link>http://www.angstrom-distribution.org/unstable/autobuild/$file/$file2</link>\n"); + while (false !== ($file2 = readdir($second_handle))) + { + if(is_file("/$base_path/$file/$file2")) + { + $fmtime = filemtime("$file/$file2"); -$rsstime = strftime("%a, %d %b %Y %T +0100", $fmtime); + echo "<item>\n" + echo "<title>$file/$file2 uploaded</title>\n"; + echo " <link>http://www.angstrom-distribution.org/unstable/autobuild/$file/$file2</link>\n"; -print("<pubDate>$rsstime</pubDate>\n"); -print("<dc:creator>Angstrom autobuilder</dc:creator>"); -print("</item>\n"); + $rsstime = strftime("%a, %d %b %Y %T +0100", $fmtime); - } + echo "<pubDate>$rsstime</pubDate>\n"; + echo "<dc:creator>Angstrom autobuilder</dc:creator>"; + echo "</item>\n"; } - closedir($second_handle); - } + } + closedir($second_handle); } + closedir($handle); } ?> -</channel> + </channel> </rss> - - diff --git a/contrib/angstrom/rss2.php b/contrib/angstrom/rss2.php new file mode 100644 index 0000000000..995c344e14 --- /dev/null +++ b/contrib/angstrom/rss2.php @@ -0,0 +1,63 @@ +<?php + +/* + * This generator expect only log from autobuilder in simple format: + * TIME_OF_BUILD BUILD_TARGET BUILD_MODE MACHINE + * + * where TIME_OF_BUILD is epoch + * + * All what it does is parsing log and output it in reverse order (new builds + * first) in RSS 2.0 format. + * + * (C) 2007 Marcin Juszkiewicz + * + * License: MIT + * + */ + +$build_link_base = 'http://www.angstrom-distribution.org/unstable/autobuild/'; + +$builder_log_date = file('autobuilder.log'); + +if(empty($builder_log_date)) + die("No logs\n"); + +$builder_log_date = array_reverse($builder_log_date); + +$rss_xml = new xmlWriter(); + +if(!$rss_xml) + die("Unable to create XML Writer\n"); + +$rss_xml->openMemory(); + +$rss_xml->startDocument('1.0','utf-8'); +$rss_xml->startElement('rss'); +$rss_xml->writeAttribute('version', '2.0'); + +$rss_xml->startElement('channel'); + +$rss_xml->writeElement('title', 'Ångström autobuilder updates'); +$rss_xml->writeElement('link', $build_link_base); +$rss_xml->writeElement('description', 'Ångström autobuilder updates list'); + +foreach($builder_log_date as $build) +{ + $build = str_replace("\n", "", $build); + $data = explode(' ', $build); + + $rss_xml->startElement('item'); + $rss_xml->writeElement('title', "{$data[1]} ({$data[2]}) built for {$data[3]}"); + $rss_xml->writeElement('link', "{$build_link_base}{$data[3]}/"); + $rss_xml->writeElement('pubDate', date('r', $data[0])); + + $rss_xml->endElement(); +} + +$rss_xml->endElement(); +$rss_xml->endElement(); + +echo $rss_xml->outputMemory(true); + +echo "\n"; +?> |