You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.4 KiB
45 lines
1.4 KiB
#!/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
|
|
|