46 lines
1.3 KiB
PHP
46 lines
1.3 KiB
PHP
|
#!/usr/bin/php
|
||
|
<?php
|
||
|
|
||
|
require_once dirname(__FILE__) . '/common.php';
|
||
|
require_once dirname(__FILE__) . '/../library/HTMLPurifier.auto.php';
|
||
|
assertCli();
|
||
|
|
||
|
/**
|
||
|
* @file
|
||
|
* Generates a schema cache file, saving it to
|
||
|
* library/HTMLPurifier/ConfigSchema/schema.ser.
|
||
|
*
|
||
|
* This should be run when new configuration options are added to
|
||
|
* HTML Purifier. A cached version is available via the repository
|
||
|
* so this does not normally have to be regenerated.
|
||
|
*
|
||
|
* If you have a directory containing custom configuration schema files,
|
||
|
* you can simple add a path to that directory as a parameter to
|
||
|
* this, and they will get included.
|
||
|
*/
|
||
|
|
||
|
$target = dirname(__FILE__) . '/../library/HTMLPurifier/ConfigSchema/schema.ser';
|
||
|
|
||
|
$builder = new HTMLPurifier_ConfigSchema_InterchangeBuilder();
|
||
|
$interchange = new HTMLPurifier_ConfigSchema_Interchange();
|
||
|
|
||
|
$builder->buildDir($interchange);
|
||
|
|
||
|
$loader = dirname(__FILE__) . '/../config-schema.php';
|
||
|
if (file_exists($loader)) include $loader;
|
||
|
foreach ($_SERVER['argv'] as $i => $dir) {
|
||
|
if ($i === 0) continue;
|
||
|
$builder->buildDir($interchange, realpath($dir));
|
||
|
}
|
||
|
|
||
|
$interchange->validate();
|
||
|
|
||
|
$schema_builder = new HTMLPurifier_ConfigSchema_Builder_ConfigSchema();
|
||
|
$schema = $schema_builder->build($interchange);
|
||
|
|
||
|
echo "Saving schema... ";
|
||
|
file_put_contents($target, serialize($schema));
|
||
|
echo "done!\n";
|
||
|
|
||
|
// vim: et sw=4 sts=4
|