Viewing file: add-vimline.php (3.67 KB) -rwxrwxr-x Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#!/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
|