0
0
mirror of https://github.com/ezyang/htmlpurifier.git synced 2024-11-08 23:08:42 +00:00
htmlpurifier/maintenance/generate-schema-cache.php
Edward Z. Yang e4ce3362a5 Some maintenance script cleanup
- Create super-script flush.php
- Rename old scripts with old- prefix.

git-svn-id: http://htmlpurifier.org/svnroot/htmlpurifier/trunk@1574 48356398-32a2-884e-a903-53898d9a118a
2008-02-24 05:06:39 +00:00

43 lines
1.0 KiB
PHP

#!/usr/bin/php
<?php
chdir(dirname(__FILE__));
require_once 'common.php';
require_once '../library/HTMLPurifier.auto.php';
assertCli();
/**
* @file
* Generates a schema cache file from the contents of
* library/HTMLPurifier/ConfigSchema/schema.ser
*/
$target = '../library/HTMLPurifier/ConfigSchema/schema.ser';
$FS = new FSTools();
$files = $FS->globr('../library/HTMLPurifier/ConfigSchema', '*.txt');
$namespaces = array();
$directives = array();
// Generate string hashes
$parser = new ConfigSchema_StringHashParser();
foreach ($files as $file) {
$hash = $parser->parseFile($file);
if (strpos($hash['ID'], '.') === false) {
$namespaces[] = $hash;
} else {
$directives[] = $hash;
}
}
$adapter = new ConfigSchema_StringHashAdapter();
$schema = new HTMLPurifier_ConfigSchema();
foreach ($namespaces as $hash) $adapter->adapt($hash, $schema);
foreach ($directives as $hash) $adapter->adapt($hash, $schema);
echo "Saving schema... ";
file_put_contents($target, serialize($schema));
echo "done!\n";