#!/usr/bin/php
<?php
define('PROGRAM', basename(array_shift($argv)));
if ($argc < 2) {
   	fwrite(STDERR, "Usage: " . PROGRAM. " path_to_package.xml [ --debug ]\n");
	exit(1);
}
$file = array_shift($argv);

$xml = simplexml_load_file($file);
if (!$xml) {
	fwrite(STDERR, "Error opening $file\n");
	exit(1);
}
if (in_array("--debug", $argv)) {
	fwrite(STDERR, print_r($xml, 1));
}

function wrap($s) {
	return wordwrap($s, 78);
}

if ($xml['version'] >= '2') { // Package.xml V 2.0
	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, wrap($xml->notes));
	$new = $xml->version->release;

	if (!empty($xml->changelog->release)) {
	    foreach ($xml->changelog->release as $rel) {
			$old = $rel->version->release;
			if ($old != $new) {
				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, wrap($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, wrap($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, wrap($rel->notes));
	}
}
