123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- #!/usr/bin/php
- <?php
- chdir(dirname(__FILE__));
- require_once 'common.php';
- assertCli();
- /**
- * @file
- * Adds vimline to files
- */
- chdir(dirname(__FILE__) . '/..');
- $FS = new FSTools();
- $vimline = 'vim: et sw=4 sts=4';
- $files = $FS->globr('.', '*');
- foreach ($files as $file) {
- if (
- !is_file($file) ||
- prefix_is('./docs/doxygen', $file) ||
- prefix_is('./library/standalone', $file) ||
- prefix_is('./docs/specimens', $file) ||
- postfix_is('.ser', $file) ||
- postfix_is('.tgz', $file) ||
- postfix_is('.patch', $file) ||
- postfix_is('.dtd', $file) ||
- postfix_is('.ent', $file) ||
- postfix_is('.png', $file) ||
- postfix_is('.ico', $file) ||
- // wontfix
- postfix_is('.vtest', $file) ||
- postfix_is('.svg', $file) ||
- postfix_is('.phpt', $file) ||
- postfix_is('VERSION', $file) ||
- postfix_is('WHATSNEW', $file) ||
- postfix_is('configdoc/usage.xml', $file) ||
- postfix_is('library/HTMLPurifier.includes.php', $file) ||
- postfix_is('library/HTMLPurifier.safe-includes.php', $file) ||
- postfix_is('smoketests/xssAttacks.xml', $file) ||
- // phpt files
- postfix_is('.diff', $file) ||
- postfix_is('.exp', $file) ||
- postfix_is('.log', $file) ||
- postfix_is('.out', $file) ||
- $file == './library/HTMLPurifier/Lexer/PH5P.php' ||
- $file == './maintenance/PH5P.php'
- ) continue;
- $ext = strrchr($file, '.');
- if (
- postfix_is('README', $file) ||
- postfix_is('LICENSE', $file) ||
- postfix_is('CREDITS', $file) ||
- postfix_is('INSTALL', $file) ||
- postfix_is('NEWS', $file) ||
- postfix_is('TODO', $file) ||
- postfix_is('WYSIWYG', $file) ||
- postfix_is('Changelog', $file)
- ) $ext = '.txt';
- if (postfix_is('Doxyfile', $file)) $ext = 'Doxyfile';
- if (postfix_is('.php.in', $file)) $ext = '.php';
- $no_nl = false;
- switch ($ext) {
- case '.php':
- case '.inc':
- case '.js':
- $line = '// %s';
- break;
- case '.html':
- case '.xsl':
- case '.xml':
- case '.htc':
- $line = "<!-- %s\n-->";
- break;
- case '.htmlt':
- $no_nl = true;
- $line = '--# %s';
- break;
- case '.ini':
- $line = '; %s';
- break;
- case '.css':
- $line = '/* %s */';
- break;
- case '.bat':
- $line = 'rem %s';
- break;
- case '.txt':
- case '.utf8':
- if (
- prefix_is('./library/HTMLPurifier/ConfigSchema', $file) ||
- prefix_is('./smoketests/test-schema', $file) ||
- prefix_is('./tests/HTMLPurifier/StringHashParser', $file)
- ) {
- $no_nl = true;
- $line = '--# %s';
- } else {
- $line = ' %s';
- }
- break;
- case 'Doxyfile':
- $line = '# %s';
- break;
- default:
- throw new Exception('Unknown file: ' . $file);
- }
- echo "$file\n";
- $contents = file_get_contents($file);
- $regex = '~' . str_replace('%s', 'vim: .+', preg_quote($line, '~')) . '~m';
- $contents = preg_replace($regex, '', $contents);
- $contents = rtrim($contents);
- if (strpos($contents, "\r\n") !== false) $nl = "\r\n";
- elseif (strpos($contents, "\n") !== false) $nl = "\n";
- elseif (strpos($contents, "\r") !== false) $nl = "\r";
- else $nl = PHP_EOL;
- if (!$no_nl) $contents .= $nl;
- $contents .= $nl . str_replace('%s', $vimline, $line) . $nl;
- file_put_contents($file, $contents);
- }
- // vim: et sw=4 sts=4
|