Yaffs site version 1.1
[yaffs-website] / vendor / ezyang / htmlpurifier / maintenance / generate-schema-cache.php
1 #!/usr/bin/php
2 <?php
3
4 require_once dirname(__FILE__) . '/common.php';
5 require_once dirname(__FILE__) . '/../library/HTMLPurifier.auto.php';
6 assertCli();
7
8 /**
9  * @file
10  * Generates a schema cache file, saving it to
11  * library/HTMLPurifier/ConfigSchema/schema.ser.
12  *
13  * This should be run when new configuration options are added to
14  * HTML Purifier. A cached version is available via the repository
15  * so this does not normally have to be regenerated.
16  *
17  * If you have a directory containing custom configuration schema files,
18  * you can simple add a path to that directory as a parameter to
19  * this, and they will get included.
20  */
21
22 $target = dirname(__FILE__) . '/../library/HTMLPurifier/ConfigSchema/schema.ser';
23
24 $builder = new HTMLPurifier_ConfigSchema_InterchangeBuilder();
25 $interchange = new HTMLPurifier_ConfigSchema_Interchange();
26
27 $builder->buildDir($interchange);
28
29 $loader = dirname(__FILE__) . '/../config-schema.php';
30 if (file_exists($loader)) include $loader;
31 foreach ($_SERVER['argv'] as $i => $dir) {
32     if ($i === 0) continue;
33     $builder->buildDir($interchange, realpath($dir));
34 }
35
36 $interchange->validate();
37
38 $schema_builder = new HTMLPurifier_ConfigSchema_Builder_ConfigSchema();
39 $schema = $schema_builder->build($interchange);
40
41 echo "Saving schema... ";
42 file_put_contents($target, serialize($schema));
43 echo "done!\n";
44
45 // vim: et sw=4 sts=4