home *** CD-ROM | disk | FTP | other *** search
- #!/usr/bin/php
-
- <?php
- /**
- * Script that can be used to compile xml-based language-files.
- *
- * @version $Id: pear-dh-compile-translationfile,v 1.1 2005/10/14 21:40:51 luckec Exp $
- * @author Carsten Lucke <luckec@php.net>
- */
-
- require_once 'Console/Getargs.php';
- require_once 'XML/Unserializer.php';
- $options = array(
- 'parseAttributes' => false,
- 'attributesArray' => false,
- 'keyAttribute' => array('property' => 'id')
- );
-
-
- $config = array(
- 'outputdir' => array(
- 'short' => 'd',
- 'min' => 1,
- 'max' => 1,
- 'desc' => 'Directory where compiled files are saved. Defaults to the current working directory.',
- 'default' => getcwd()
- ),
-
- 'verbose' => array(
- 'short' => 'v',
- 'min' => 0,
- 'max' => 0,
- 'desc' => 'Enable verbose mode.'
- ),
-
- CONSOLE_GETARGS_PARAMS => array(
- 'min' => 1,
- 'max' => -1,
- 'desc' => 'Input file(s)'
- )
- );
-
- $args = &Console_Getargs::factory($config);
- if (PEAR::isError($args) || is_null($args->getValue(CONSOLE_GETARGS_PARAMS))) {
- $header = "Date_Holidays language-file compiler\n--\n".
- 'Usage: '.basename($_SERVER['SCRIPT_NAME'])." [options] filename(s)\n\n";
- if (is_a($args, 'PEAR_Error') && $args->getCode() === CONSOLE_GETARGS_ERROR_USER) {
- echo Console_Getargs::getHelp($config, $header, $args->getMessage())."\n";
- } else {
- echo Console_Getargs::getHelp($config, $header)."\n";
- }
- exit;
- }
-
- $files = $args->getValue(CONSOLE_GETARGS_PARAMS);
- if (is_string($files)) {
- $files = array($files);
- }
- $outputDir = $args->getValue('outputdir');
-
-
- foreach ($files as $file) {
-
- if (! file_exists($file)) {
- die(sprintf('File not found: %s', $file) . "\n");
- }
-
- $unserializer = &new XML_Unserializer($options);
- $status = $unserializer->unserialize($file, true);
- if (PEAR::isError($status)) {
- die('Error occurred: ' . $status->getMessage());
- } else {
- $content = $unserializer->getUnserializedData();
-
- $filename = $outputDir . DIRECTORY_SEPARATOR . basename($file, '.xml') . '.ser';
- if ($fp = fopen($filename, 'w')) {
- fwrite($fp, serialize($content));
- fclose($fp);
- if ($args->isDefined('v')) {
- echo 'Writing compiled data to: ' . $filename . "\n";
- }
- } else {
- die('Could not write compiled file' . "\n");
- }
- }
- }
-
- ?>
-