summaryrefslogtreecommitdiffstats
path: root/perl-install/common.pm
Commit message (Expand)AuthorAgeFilesLines
* (cmp_kernel_versions) move it from any.pm to common.pm; thus preventing lazy ...Thierry Vignaud2012-03-121-0/+12
* (secured_file) ensure that ~/tmp is correctly owned if createdThierry Vignaud2011-11-271-2/+11
* (parse_release_file) silent perl_checkerThierry Vignaud2011-11-271-1/+1
* (secured_file) fix crashing on creating temp file if temp dir doesn't exist (...Thierry Vignaud2011-11-271-0/+1
* also take mandriva-release file in account in common::release_file for consis...Michael Scherer2011-05-231-1/+1
* - string changes: perl -pi -e 's!Can not!Cannot!'Ahmad Samir2011-04-041-1/+1
* - use 'cannot' instead of 'can not'Ahmad Samir2011-04-021-2/+2
* Synthesized commit during git-svn import combining previous Mandriva history ...Mageia SVN-Git Migration2011-02-061-5/+5
* create unwind_protect() and with_private_tmp_file()Pascal Rigaux2008-09-181-0/+23
* - keep in $o->{previous_release} the info about upgraded /etc/release,Pascal Rigaux2008-09-011-1/+3
* (is_running) make it return the actual PID of the first found process rather ...Thierry Vignaud2008-08-071-3/+3
* (is_running) factorize code between mdkapplet & net_applet so that draksnapsh...Thierry Vignaud2008-08-071-1/+10
* fix reading and setting kdmrc (by resolving alternative in chroot)Olivier Blin2008-07-101-0/+6
* fix reading alternatives in installOlivier Blin2008-03-201-1/+1
* (to_utf8) export it (for rpmdrake)Thierry Vignaud2008-02-211-1/+1
* also detect SuSE distros (see #16604)Pascal Rigaux2008-02-011-1/+1
* create common::parse_release_file() out of find_root_parts()Pascal Rigaux2008-01-301-0/+8
* release_file(): handle /etc/fedora-releasePascal Rigaux2008-01-291-1/+1
* - fix configuring kdeglobals (was broken because of /etc/kderc usingPascal Rigaux2007-10-041-0/+15
* formatXiB: make it explicit that we don't support float numbersPascal Rigaux2007-09-211-1/+1
* simplify handling negative numbersPascal Rigaux2007-09-211-3/+5
* make formatXiB() handle negative numbers (for rpmdrake)Thierry Vignaud2007-09-211-3/+3
* (get_parent_uid) introduce it in order to be able to run a processThierry Vignaud2007-09-131-1/+5
* (translate_real) simplifyThierry Vignaud2007-08-281-4/+3
* (translate_real) in english 1 is singular whereas 0 is plural (pixel)Thierry Vignaud2007-08-281-1/+3
* (translate_real) fix plural translating for C localeThierry Vignaud2007-08-281-1/+1
* (translate_real) fix translating plural forms by comparing the gettextThierry Vignaud2007-08-131-1/+1
* (translate_real) always use dngettext() if we have a plural stringThierry Vignaud2007-08-131-1/+1
* - for XFdrake: use update-alternatives command instead doing things by handPascal Rigaux2007-08-081-14/+1
* - fix range max value >2TB when creating a partition (useful for LVs >2TB)Pascal Rigaux2007-08-061-1/+8
* (mandrake_release_info) introduce it in order to have full release info (eg: ...Thierry Vignaud2007-06-271-1/+5
* - diskdrakePascal Rigaux2007-06-111-5/+7
* (to_utf8) tell perl this is now UTF-8 (spotted by #31067 and also seenThierry Vignaud2007-05-281-1/+3
* re-sync after the big svn lossPascal Rigaux2007-04-251-50/+143
* let packages using common.pm to use Locale::gettext without requiring itPascal Rigaux2005-12-281-1/+1
* allow common.pm and standalone.pm to be used in drakxtools-backend without pe...Pascal Rigaux2005-12-181-1/+1
* fix dropping sprintf_fixutf8 (i committed the wrong version...)Pascal Rigaux2005-12-151-1/+1
* - i had foolishly removed c::iconv whereas it was used still used by c::from_...Pascal Rigaux2005-12-151-0/+9
* get rid of sprintf_fixutf8 which is no more needed with current perlPascal Rigaux2005-12-151-10/+3
* use Locale::gettext for dgettext, bindtextdomain and bind_textdomain_codeset ...Pascal Rigaux2005-12-151-1/+2
* fix looking for backup-ed release file firstPascal Rigaux2005-09-121-3/+5
* - new functionality: upgrade_by_removing_pkgs, enabled when upgrading redhat ...Pascal Rigaux2005-09-021-1/+3
* also look for conectiva-releasePascal Rigaux2005-08-311-1/+1
* move is_xbox from common to detect_devicesOlivier Blin2005-08-081-6/+1
* import md5file from net_applet/mdkonline/userdrakeOlivier Blin2005-07-181-0/+14
* do not load bloat POSIXThierry Vignaud2005-06-301-3/+2
* try to cleanup fs.pmPascal Rigaux2005-06-281-0/+2
* don't need use MDK::Common... when we have "use common" (which is the standar...Pascal Rigaux2005-06-101-1/+0
* use "our" instead of "use vars"Pascal Rigaux2005-06-031-4/+3
* drop untranslate which is unused and bad practicePascal Rigaux2005-06-031-8/+1
t;text/css"> <!-- th { background-image: url(\'cellpic3.gif\') } td.cat { background-image: url(\'cellpic1.gif\') } //--> </style> <title>{FILENAME}</title> </head> <body> <table width="100%" cellspacing="0" cellpadding="0" border="0"> <tr> <td><img src="header_left.jpg" width="200" height="60" alt="phpBB Logo" title="phpBB Logo" border="0"/></td> <td width="100%" background="header_bg.jpg" height="60" align="right" nowrap="nowrap"><span class="maintitle">File {FILENAME}</span> &nbsp; &nbsp; &nbsp;</td> </tr> </table> <table width="95%" cellspacing="0" cellpadding="0" border="0" align="center"> <tr> <td><br clear="all" /> '; $html_skeleton .= '<br><a href="./index.html" class="gen">Back to Contents</a><br><br>'; $html_skeleton .= '<br><a href="#lang" class="gen">Language Variables</a> :: <a href="#includes" class="gen">Includes</a> :: <a href="#cond" class="gen">Conditionals</a><br><a href="#remain" class="gen">Remaining Vars</a> :: <a href="#usedby" class="gen">phpBB File Usage</a> :: <a href="#ref" class="gen">References</a>'; $html_skeleton .= '<br><br><a name="lang"></a><b>Language Variables</b><br><br>{LANGUAGE_VARIABLES}'; $html_skeleton .= '<br><br><a name="includes"></a><b>Included Files</b><br><br>{INCLUDES}'; $html_skeleton .= '<br><br><a name="cond"></a><b>Used Conditionals</b><br><br>{CONDITIONALS}'; $html_skeleton .= '<br><br><a name="remain"></a><b>Remaining Vars used</b><br><br>{REMAINING_VARS}'; $html_skeleton .= '<br><br><a name="usedby"></a><b>This Template File is used by the following phpBB Files</b><br><br>{USED_BY}'; $html_skeleton .= '<br><br><a name="ref"></a><b>References: </b>{SEE_FILES}'; //$html_skeleton .= "</body>\n</html>\n"; $html_skeleton .= ' <br><br> <div class="copyright" align="center">Powered by <a href="http://www.phpbb.com/">phpBB</a>&reg; Forum Software &copy; phpBB Group</div> <br clear="all" /></td> </tr> </table> </body> </html> '; // Open Language File include('../language/en/lang_main.php'); include('../language/en/lang_admin.php'); $files_to_parse = $php_files = array(); $dhandler = opendir($directory); if (!$dhandler) { die("Unable to open $directory"); } $num = 0; while ($file = readdir($dhandler)) { if (is_file($directory . $file) && preg_match('#\.' . $ext . '$#i', $file)) { $files_to_parse[$num]['filename'] = $directory . $file; $files_to_parse[$num]['single_filename'] = $file; $files_to_parse[$num]['destfile'] = str_replace(".{$ext}", '', $file) . '_' . $num . '.html'; $file_to_destfile[$file] = $files_to_parse[$num]['destfile']; $num++; } } closedir($dhandler); $num = 0; foreach ($phpfiles_directories as $directory) { $dhandler = opendir($directory); if (!$dhandler) { die("Unable to open $directory"); } while ($file = readdir($dhandler)) { if (is_file($directory . $file) && preg_match('#\.php$#i', $file)) { $php_files[$num]['filename'] = $directory . $file; $php_files[$num]['single_filename'] = $file; $num++; } } closedir($dhandler); } $php_files_includes = $lang_references = array(); //$php_files_includes['viewtopic_attach_body.html'][0] = filename echo '<br>Parsing PHP Files'; // Parse PHP Files and get our filenames foreach ($php_files as $file_num => $data) { echo '.'; flush(); $contents = implode('', file($data['filename'], filesize($data['filename']))); $html_files = array(); preg_match_all('#([a-zA-Z0-9\-_]*?)\.' . $ext . '#s', $contents, $html_files); $html_files = array_unique($html_files[1]); foreach ($html_files as $html_file) { $html_file = trim($html_file); if ($html_file != '') { $php_files_includes[$html_file . '.' . $ext][] = $data['filename']; } } } echo '<br>Parsing HTML Files'; foreach ($files_to_parse as $file_num => $data) { echo '.'; flush(); $contents = implode('', file($data['filename'], filesize($data['filename']))); // Language Variables -> [0]:tpl [1]:lang $lang_vars = array(); preg_match_all('#{L_([a-z0-9\-_]*?)\}#is', $contents, $lang_vars); $contents = preg_replace('#{L_([a-z0-9\-_]*?)\}#is', '', $contents); $lang_vars[0] = array_unique($lang_vars[0]); $lang_vars[1] = array_unique($lang_vars[1]); // Includes $includes = array(); preg_match_all('#<!-- INCLUDE ([a-zA-Z0-9\_\-\+\.]+?) -->#s', $contents, $includes); $contents = preg_replace('#<!-- INCLUDE ([a-zA-Z0-9\_\-\+\.]+?) -->#', '', $contents); $includes = $includes[1]; $includes = array_unique($includes); // IF Conditions $switches = array(); preg_match_all('#<!-- [IF]|[ELSEIF] ([a-zA-Z0-9\-_\.]+?) (.*?)?[ ]?-->#', $contents, $switches); $contents = preg_replace('#<!-- [IF]|[ELSEIF] ([a-zA-Z0-9\-_]) (.*?)?[ ]?-->#s', '', $contents); $switches[0] = array_unique($switches[1]); // No resorting please $switches[1] = $switches[2]; unset($switches[2]); // Remaining Vars $remaining_vars = array(); preg_match_all('#{([a-z0-9\-_\.]*?)\}#is', $contents, $remaining_vars); $contents = preg_replace('#{([a-z0-9\-_]*?)\}#is', '', $contents); $remaining_vars = array_unique($remaining_vars[1]); sort($remaining_vars, SORT_STRING); // Now build the filename specific site $fp = fopen($store_dir . $data['destfile'], 'w'); $html_data = $html_skeleton; $html_data = str_replace('{FILENAME}', $data['single_filename'], $html_data); // Write up the Language Variables if (count($lang_vars[0])) { $lang_data = '<ul>'; for ($num = 0; $num <= count($lang_vars[0]); $num++) { $var = $lang_vars[0][$num]; if ($var != '') { $_var = str_replace(array('{', '}'), array('', ''), $var); $lang_references[$_var][] = $data['single_filename']; $lang_data .= '<li>' . $var . '<br>' . "\n" . ((isset($lang[$_var])) ? htmlspecialchars(str_replace("\\'", "'", $lang[$_var])) : '<span style="color:red">No Language Variable available</span>') . '<br></li><br>' . "\n"; } } $lang_data .= '</ul>'; } else { $lang_data = '<b>NONE</b><br>' . "\n"; } $html_data = str_replace('{LANGUAGE_VARIABLES}', $lang_data, $html_data); // Write up the Includes echo '.'; flush(); if (count($includes)) { $includes_data = '<ul>'; $see_files = ''; for ($num = 0; $num <= count($includes); $num++) { $var = $includes[$num]; if ($var != '') { $includes_data .= '<li><a href="./' . $file_to_destfile[$var] . '" class="gen">' . $var . '</a></li><br>' . "\n"; $see_files .= ($see_files != '') ? ' :: ' : ''; $see_files .= '<a href="./' . $file_to_destfile[$var] . '" class="gen">' . $var . '</a>'; } } $includes_data .= '</ul>'; } else { $includes_data = '<b>NONE</b><br>' . "\n"; $see_files = '<b>NONE</b>'; } $html_data = str_replace('{INCLUDES}', $includes_data, $html_data); $html_data = str_replace('{SEE_FILES}', $see_files, $html_data); // Write up Conditionals echo '.'; flush(); if (count($switches[0])) { $conditionals = '<ul>'; for ($num = 0; $num <= count($switches[0]); $num++) { $var = trim($switches[0][$num]); if ($var != '') { if ($var == 'not') { $conditionals .= '<li>' . trim($switches[1][$num]) . '<br><b>Negation</b><br>' . "\n"; $block_var = explode('.', trim($switches[1][$num])); unset($block_var[0]); } else { $conditionals .= '<li>' . $var . ((trim($switches[1][$num]) != '') ? '<br>' . "\n" . '<i>Compared with</i> -&gt; <b>' . trim($switches[1][$num]) . '</b>' : '') . '<br>' . "\n"; $block_var = explode('.', $var); unset($block_var[count($block_var)-1]); } if (count($block_var)) { for ($_num = count($block_var)-1; $_num >= 0; $_num--) { $conditionals .= ($_num == count($block_var)-1) ? '<i>Element of Block</i> -&gt; <b>' . $block_var[$_num] . '</b><br>' . "\n" : '<i>...which is an element of</i> -&gt; <b>' . $block_var[$_num] . '</b><br>' . "\n"; } } $conditionals .= '<br></li>' . "\n"; } } $conditionals .= '</ul>'; } else { $conditionals = '<b>NONE</b><br>' . "\n"; } $html_data = str_replace('{CONDITIONALS}', $conditionals, $html_data); // Write up Remaining Vars echo '.'; flush(); if (count($remaining_vars)) { $remaining = '<ul>'; for ($num = 0; $num <= count($remaining_vars); $num++) { $var = trim($remaining_vars[$num]); if ($var != '') { $remaining .= '<li>' . $var . '<br>' . "\n"; $block_var = explode('.', $var); unset($block_var[count($block_var)-1]); if (count($block_var)) { for ($_num = count($block_var)-1; $_num >= 0; $_num--) { $remaining .= ($_num == count($block_var)-1) ? '<i>Element of Block</i> -&gt; <b>' . $block_var[$_num] . '</b><br>' . "\n" : '<i>...which is an element of</i> -&gt; <b>' . $block_var[$_num] . '</b><br>' . "\n"; } } $remaining .= '<br></li>' . "\n"; } } $remaining .= '</ul>'; } else { $remaining = '<b>NONE</b><br>' . "\n"; } $html_data = str_replace('{REMAINING_VARS}', $remaining, $html_data); if (isset($php_files_includes[$data['single_filename']]) && count($php_files_includes[$data['single_filename']])) { $usedby = '<ul>'; foreach ($php_files_includes[$data['single_filename']] as $php_filename) { $usedby .= '<li>' . str_replace('../', '', $php_filename) . '</li>'; } $usedby .= '</ul>'; } else { $usedby = '<b>NONE</b><br>' . "\n"; } $html_data = str_replace('{USED_BY}', $usedby, $html_data); fwrite($fp, $html_data); fclose($fp); } echo '<br>Store Files'; $fp = fopen($store_dir . 'index.html', 'w'); $html_data = ' <!DOCTYPE html> <html> <head> <link rel="stylesheet" href="subSilver.css" type="text/css"> <style type="text/css"> <!-- th { background-image: url(\'cellpic3.gif\') } td.cat { background-image: url(\'cellpic1.gif\') } //--> </style> <title>Contents</title> </head> <body> <table width="100%" cellspacing="0" cellpadding="0" border="0"> <tr> <td><img src="header_left.jpg" width="200" height="60" alt="phpBB Logo" title="phpBB Logo" border="0"/></td> <td width="100%" background="header_bg.jpg" height="60" align="right" nowrap="nowrap"><span class="maintitle">Available Template Files</span> &nbsp; &nbsp; &nbsp;</td> </tr> </table> <table width="95%" cellspacing="0" cellpadding="0" border="0" align="center"> <tr> <td><br clear="all" /> <br>This Style Document is 100% auto-generated... no human interaction included. :D<br> <h2>phpBB 2.2 Template</h2> <br> <ol> '; sort($files_to_parse); foreach ($files_to_parse as $file_num => $data) { echo '.'; flush(); $var = $data['single_filename']; $html_data .= '<li><a href="./' . $file_to_destfile[$var] . '" class="gen">' . $var . '</a></li><br>' . "\n"; } $html_data .= '<br><li><a href="./lang_index.html" class="gen">Appendix A: Language Variable Index</a></li><br>'; $html_data .= ' </ol><br><br> <div class="copyright" align="center">Powered by <a href="http://www.phpbb.com/">phpBB</a>&reg; Forum Software &copy; phpBB Group</div> <br clear="all" /></td> </tr> </table> </body> </html> '; fwrite($fp, $html_data); fclose($fp); // Not only write down all language files, place them into a specific array, named by the template file // All Language vars assigned to more than one template will be placed into a common file $entry = array(); $common_fp = fopen($store_dir . 'lang_common.php', 'w'); fwrite($common_fp, "<?php\n\n \$lang = array(\n"); $fp = fopen($store_dir . 'lang_index.html', 'w'); $html_data = ' <!DOCTYPE html> <html> <head> <link rel="stylesheet" href="subSilver.css" type="text/css"> <style type="text/css"> <!-- th { background-image: url(\'cellpic3.gif\') } td.cat { background-image: url(\'cellpic1.gif\') } //--> </style> <title>Appendix A :: Language Variable Index</title> </head> <body> <table width="100%" cellspacing="0" cellpadding="0" border="0"> <tr> <td><img src="header_left.jpg" width="200" height="60" alt="phpBB Logo" title="phpBB Logo" border="0"/></td> <td width="100%" background="header_bg.jpg" height="60" align="right" nowrap="nowrap"><span class="maintitle">Language Variable Index</span> &nbsp; &nbsp; &nbsp;</td> </tr> </table> <table width="95%" cellspacing="0" cellpadding="0" border="0" align="center"> <tr> <td><br clear="all" /> <br><a href="./index.html" class="gen">Back to Contents</a><br><br> <br> '; echo '<br>Write Language Files'; asort($lang_references); ksort($lang_references); $_index = ''; $old_char = ''; foreach ($lang_references as $lang_var => $filenames) { $var = preg_replace('#^L_(.*?)#', '\1', $lang_var); $char = $var{0}; if ($old_char != $char) { $old_char = $char; $_index .= ($_index != '') ? ' :: ' : ''; $_index .= '<a href="#' . $char . '" class="gen"><b>' . $char . '</b></a>'; } } $html_data .= $_index . '<br><br><br>'; $old_char = ''; foreach ($lang_references as $lang_var => $filenames) { echo '.'; flush(); $var = preg_replace('#^L_(.*?)#', '\1', $lang_var); $char = $var{0}; if ($old_char != $char) { $old_char = $char; $html_data .= '<br><hr><br><a name="' . $char . '"></a><h2>Letter ' . $char . '</h2><br><br>'; } $html_data .= '<b>' . $lang_var . '</b><ul>'; if (sizeof($filenames) != 1) { fwrite($common_fp, (($entry['common']) ? ",\n" : '') . "\t'$var' => '" . $lang[$var] . "'"); $entry['common'] = true; } else if (sizeof($filenames) == 1) { // Merge logical - hardcoded $fname = (preg_match('#^(' . implode('|', $merge) . ')#', $filenames[0], $match)) ? $match[0] . '.php' : str_replace($ext, 'php', $filenames[0]); if (!$lang_fp[$fname]) { $lang_fp[$fname] = fopen($store_dir . 'lang_' . $fname, 'w'); fwrite($lang_fp[$fname], "<?php\n\n\$lang = array(\n"); $entry[$fname] = false; } fwrite($lang_fp[$fname], (($entry[$fname]) ? ",\n" : '') . "\t'$var' => '" . $lang[$var] . "'"); $entry[$fname] = true; } foreach ($filenames as $f_name) { $var = trim($f_name); $html_data .= '<li><a href="./' . $file_to_destfile[$var] . '" class="gen">' . $var . '</a></li><br>' . "\n"; } $html_data .= '</ul><br><br>'; } fwrite($common_fp, ")\n);\n?>"); fclose($common_fp); foreach ($lang_fp as $filepointer) { fwrite($filepointer, ")\n);\n?>"); fclose($filepointer); } $html_data .= ' <br><br> <div class="copyright" align="center">Powered by <a href="http://www.phpbb.com/">phpBB</a>&reg; Forum Software &copy; phpBB Group</div> <br clear="all" /></td> </tr> </table> </body> </html> '; fwrite($fp, $html_data); fclose($fp); echo '<br>Finished!'; flush();