131 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			131 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| #!/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
 | 
