freescout/freescout-dist/vendor/ezyang/htmlpurifier/maintenance/generate-schema-cache.php

46 lines
1.3 KiB
PHP
Raw Permalink Normal View History

2023-12-22 19:40:32 +00:00
#!/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