summaryrefslogtreecommitdiffstats
path: root/xml2changelog
blob: c04c442235150633056d7c2e515bcfcf3dc224be (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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);
}
?>