<?php
 
ob_start();
 
define('SLASHPROC', '/proc/acpi');
 
$f = $_SERVER['PATH_INFO'];
 
define('F', realpath(SLASHPROC . $f));
 
if (!F) {
 
	echo '<error><message>unknown acpi file</message><more>' . $f . '</more></error>';
 
} else {
 
	printf('<%s>', str_replace('/', '_', F));
 
	if (is_dir(F)) {
 
		$files = glob(F.'/*');
 
		foreach($files as $file) {
 
			$type = is_dir($file) ? 'dir' : 'file';
 
			$file = str_replace(F, '', $file);
 
			printf('<%s>%s</%1$s>', $type, $file);
 
		}
 
	} else {
 
		$lines = file(F);
 
 
		foreach($lines as $l) {
 
			if (preg_match('/([^:]+):[ \t]+(.+)/', $l, $p)) {
 
				$name = str_replace(array(' ', '*'), '_', $p[1]);
 
				if (strstr($p[2], ' ')) {
 
					list($value, $unit) = explode(' ', $p[2]);
 
					printf('<%s unit="%s">%d</%1$s>', $name, $unit, $value);
 
				} else {
 
					printf('<%s>%s</%1$s>', $name, $p[2]);
 
				}
 
			}
 
		}
 
 
	}
 
	printf('</%s>', str_replace('/', '_', F));
 
}
 
$b = ob_get_contents();
 
ob_end_clean();
 
header('Content-Type: text/xml');
 
echo '<?xml version="1.0"?>', $b;
 
?>