Skip to content
Snippets Groups Projects
Commit 4eedec02 authored by Laurent Destailleur's avatar Laurent Destailleur
Browse files

Fix tool to generate filecheck

parent 7c030a11
No related branches found
No related tags found
No related merge requests found
...@@ -39,12 +39,14 @@ parse_str($argv[1]); ...@@ -39,12 +39,14 @@ parse_str($argv[1]);
$outputfile=dirname(__FILE__).'/../htdocs/install/filelist.xml'; $outputfile=dirname(__FILE__).'/../htdocs/install/filelist.xml';
$fp = fopen($outputfile,'w'); $fp = fopen($outputfile,'w');
fputs($fp, '<?xml version="1.0" encoding="UTF-8" ?>'."\n"); fputs($fp, '<?xml version="1.0" encoding="UTF-8" ?>'."\n");
fputs($fp, '<checksum_list>'."\n"); fputs($fp, '<checksum_list version="'.$release.'">'."\n");
fputs($fp, '<dolibarr_root_dir version="'.$release.'">'."\n");
$dir_iterator = new RecursiveDirectoryIterator(dirname(__FILE__).'/../htdocs/'); fputs($fp, '<dolibarr_htdocs_dir>'."\n");
$iterator = new RecursiveIteratorIterator($dir_iterator);
$dir_iterator1 = new RecursiveDirectoryIterator(dirname(__FILE__).'/../htdocs/');
$iterator1 = new RecursiveIteratorIterator($dir_iterator1);
// need to ignore document custom etc // need to ignore document custom etc
$files = new RegexIterator($iterator, '#^(?:[A-Z]:)?(?:/(?!(?:custom|documents|conf|install|nltechno))[^/]+)+/[^/]+\.(?:php|css|html|js|json|tpl|jpg|png|gif|sql|lang)$#i'); $files = new RegexIterator($iterator1, '#^(?:[A-Z]:)?(?:/(?!(?:custom|documents|conf|install|nltechno))[^/]+)+/[^/]+\.(?:php|css|html|js|json|tpl|jpg|png|gif|sql|lang)$#i');
$dir=''; $dir='';
$needtoclose=0; $needtoclose=0;
foreach ($files as $file) { foreach ($files as $file) {
...@@ -61,7 +63,34 @@ foreach ($files as $file) { ...@@ -61,7 +63,34 @@ foreach ($files as $file) {
} }
} }
fputs($fp, '</dir>'."\n"); fputs($fp, '</dir>'."\n");
fputs($fp, '</dolibarr_root_dir>'."\n"); fputs($fp, '</dolibarr_htdocs_dir>'."\n");
fputs($fp, '<dolibarr_script_dir version="'.$release.'">'."\n");
$dir_iterator2 = new RecursiveDirectoryIterator(dirname(__FILE__).'/../scripts/');
$iterator2 = new RecursiveIteratorIterator($dir_iterator2);
// need to ignore document custom etc
$files = new RegexIterator($iterator2, '#^(?:[A-Z]:)?(?:/(?!(?:custom|documents|conf|install|nltechno))[^/]+)+/[^/]+\.(?:php|css|html|js|json|tpl|jpg|png|gif|sql|lang)$#i');
$dir='';
$needtoclose=0;
foreach ($files as $file) {
$newdir = str_replace(dirname(__FILE__).'/../scripts', '', dirname($file));
if ($newdir!=$dir) {
if ($needtoclose)
fputs($fp, '</dir>'."\n");
fputs($fp, '<dir name="'.$newdir.'" >'."\n");
$dir = $newdir;
$needtoclose=1;
}
if (filetype($file)=="file") {
fputs($fp, '<md5file name="'.basename($file).'">'.md5_file($file).'</md5file>'."\n");
}
}
fputs($fp, '</dir>'."\n");
fputs($fp, '</dolibarr_script_dir>'."\n");
fputs($fp, '</checksum_list>'."\n"); fputs($fp, '</checksum_list>'."\n");
fclose($fp); fclose($fp);
......
...@@ -31,6 +31,8 @@ $langs->load("admin"); ...@@ -31,6 +31,8 @@ $langs->load("admin");
if (!$user->admin) if (!$user->admin)
accessforbidden(); accessforbidden();
$error=0;
/* /*
* View * View
...@@ -77,67 +79,91 @@ if (file_exists($xmlfile)) ...@@ -77,67 +79,91 @@ if (file_exists($xmlfile))
$xml = simplexml_load_file($xmlfile); $xml = simplexml_load_file($xmlfile);
if ($xml) if ($xml)
{ {
$file_list = array(); if (is_object($xml->dolibarr_htdocs_dir[0]))
$ret = getFilesUpdated($file_list, $xml->dolibarr_root_dir[0]); // Fill array $file_list
print '<table class="noborder">';
print '<tr class="liste_titre">';
print '<td>' . $langs->trans("FilesMissing") . '</td>';
print '<td align="center">' . $langs->trans("ExpectedChecksum") . '</td>';
print '</tr>'."\n";
$var = true;
$tmpfilelist = dol_sort_array($file_list['missing'], 'filename');
if (is_array($tmpfilelist))
{ {
foreach ($tmpfilelist as $file) $file_list = array();
{ $ret = getFilesUpdated($file_list, $xml->dolibarr_htdocs_dir[0]); // Fill array $file_list
$var = !$var;
print '<tr ' . $bc[$var] . '>'; print '<table class="noborder">';
print '<td>'.$file['filename'].'</td>' . "\n"; print '<tr class="liste_titre">';
print '<td align="center">'.$file['expectedmd5'].'</td>' . "\n"; print '<td>' . $langs->trans("FilesMissing") . '</td>';
print "</tr>\n"; print '<td align="center">' . $langs->trans("ExpectedChecksum") . '</td>';
} print '</tr>'."\n";
$var = true;
$tmpfilelist = dol_sort_array($file_list['missing'], 'filename');
if (is_array($tmpfilelist) && count($tmpfilelist))
{
foreach ($tmpfilelist as $file)
{
$var = !$var;
print '<tr ' . $bc[$var] . '>';
print '<td>'.$file['filename'].'</td>' . "\n";
print '<td align="center">'.$file['expectedmd5'].'</td>' . "\n";
print "</tr>\n";
}
}
else
{
print '<tr ' . $bc[false] . '><td colspan="2">'.$langs->trans("None").'</td></tr>';
}
print '</table>';
print '<br>';
print '<table class="noborder">';
print '<tr class="liste_titre">';
print '<td>' . $langs->trans("FilesUpdated") . '</td>';
print '<td align="center">' . $langs->trans("ExpectedChecksum") . '</td>';
print '<td align="center">' . $langs->trans("CurrentChecksum") . '</td>';
print '<td align="right">' . $langs->trans("Size") . '</td>';
print '<td align="right">' . $langs->trans("DateModification") . '</td>';
print '</tr>'."\n";
$var = true;
$tmpfilelist = dol_sort_array($file_list['updated'], 'filename');
if (is_array($tmpfilelist) && count($tmpfilelist))
{
foreach ($tmpfilelist as $file)
{
$var = !$var;
print '<tr ' . $bc[$var] . '>';
print '<td>'.$file['filename'].'</td>' . "\n";
print '<td align="center">'.$file['expectedmd5'].'</td>' . "\n";
print '<td align="center">'.$file['md5'].'</td>' . "\n";
print '<td align="right">'.dol_print_size(dol_filesize(DOL_DOCUMENT_ROOT.'/'.$file['filename'])).'</td>' . "\n";
print '<td align="right">'.dol_print_date(dol_filemtime(DOL_DOCUMENT_ROOT.'/'.$file['filename']),'dayhour').'</td>' . "\n";
print "</tr>\n";
}
}
else
{
print '<tr ' . $bc[false] . '><td colspan="5">'.$langs->trans("None").'</td></tr>';
}
print '</table>';
} }
print '</table>'; else
print '<br>';
print '<table class="noborder">';
print '<tr class="liste_titre">';
print '<td>' . $langs->trans("FilesUpdated") . '</td>';
print '<td align="center">' . $langs->trans("ExpectedChecksum") . '</td>';
print '<td align="center">' . $langs->trans("CurrentChecksum") . '</td>';
print '<td align="right">' . $langs->trans("Size") . '</td>';
print '<td align="right">' . $langs->trans("DateModification") . '</td>';
print '</tr>'."\n";
$var = true;
$tmpfilelist = dol_sort_array($file_list['updated'], 'filename');
if (is_array($tmpfilelist))
{ {
foreach ($tmpfilelist as $file) print 'Error: Failed to found dolibarr_htdocs_dir into XML file '.$xmlfile;
{ $error++;
$var = !$var;
print '<tr ' . $bc[$var] . '>';
print '<td>'.$file['filename'].'</td>' . "\n";
print '<td align="center">'.$file['expectedmd5'].'</td>' . "\n";
print '<td align="center">'.$file['md5'].'</td>' . "\n";
print '<td align="right">'.dol_print_size(dol_filesize(DOL_DOCUMENT_ROOT.'/'.$file['filename'])).'</td>' . "\n";
print '<td align="right">'.dol_print_date(dol_filemtime(DOL_DOCUMENT_ROOT.'/'.$file['filename']),'dayhour').'</td>' . "\n";
print "</tr>\n";
}
} }
print '</table>'; }
else
{
print 'Error: Failed to parse XML for input file '.$xmlfile;
$error++;
} }
} }
else else
{ {
print $langs->trans('XmlNotFound') . ': ' . $xmlfile; print $langs->trans('XmlNotFound') . ': ' . $xmlfile;
$error++;
} }
llxFooter(); llxFooter();
$db->close(); $db->close();
exit($error);
/** /**
* Function to get list of updated or modified files. * Function to get list of updated or modified files.
......
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment