summaryrefslogtreecommitdiffstats
path: root/xml2changelog
diff options
context:
space:
mode:
Diffstat (limited to 'xml2changelog')
-rw-r--r--xml2changelog43
1 files changed, 43 insertions, 0 deletions
diff --git a/xml2changelog b/xml2changelog
new file mode 100644
index 0000000..3a31be6
--- /dev/null
+++ b/xml2changelog
@@ -0,0 +1,43 @@
+<?php
+$prog=array_shift($_SERVER['argv']);
+if ($_SERVER['argc']<2) die ("usage : " . $prog . " path_to_package.xml [ --debug ]\n");
+$file=array_shift($_SERVER['argv']);
+
+($xml=simplexml_load_file($file)) || die ($file . " not found !\n");
+if (in_array("--debug", $_SERVER['argv'])) print_r($xml);
+
+if ($xml['version'] >= "2"){ // Package.xml V 2.0
+ $new = "";
+ if (strlen(trim($xml->notes))>1) { // Ignore too short descr.
+ printf("*** Version %s (%s) - API %s (%s) - %s\n\n%s\n\n",
+ $xml->version->release, $xml->stability->release,
+ $xml->version->api, $xml->stability->api,
+ $xml->date, $xml->notes);
+ $new=$xml->version->release;
+ }
+
+ if (isset($xml->changelog->release) && count($xml->changelog->release)) {
+ $tab = array();
+ foreach($xml->changelog->release as $rel) {
+ $old=$rel->version->release;
+ if ("$old" != "$new") {
+ $tab[''.$rel->date] = $rel;
+ }
+ }
+ krsort($tab);
+ foreach($tab as $rel) {
+ printf("*** Version %s (%s) - API %s (%s) - %s\n\n%s\n\n",
+ $rel->version->release, $rel->stability->release,
+ $rel->version->api, $rel->stability->api,
+ $rel->date, $rel->notes);
+ }
+ }
+} else { // Package.xml V 1.0
+ printf("* Version %s (%s) - %s\n\n%s\n\n",
+ $xml->release->version, $xml->release->state, $xml->release->date, $xml->release->notes);
+
+ foreach($xml->changelog->release as $rel)
+ printf("* Version %s (%s) - %s\n\n%s\n\n",
+ $rel->version, $rel->state, $rel->date, $rel->notes);
+}
+?>