$diffcheck .= '<span class="' . $difference['color'] . '">' . $difference['action'] . '</span>'; $diffcheck .= '</td><td class="membersRow' . $row_color . '">'; if (isset($difference['from'])) { $diffcheck .= highlight_php(implode("\n", $difference['from']), $rowfile1[0]); } $diffcheck .= '</td><td class="membersRowRight' . $row_color . '">'; if (isset($difference['to'])) { $diffcheck .= highlight_php(implode("\n", $difference['to']), $rowfile2[0]); } $diffcheck .= '</td>'; $diffcheck .= '</tr>'; } $diffcheck .= '</table>'; } } else { if (check_if_image($filename)) { $svnurl = parse_url(ROSTER_SVNREMOTE); $svnpath = pathinfo($svnurl['path'], PATHINFO_DIRNAME); $svnurl = $svnurl['scheme'] . '://' . $svnurl['host'] . $svnpath . '/'; $diffcheck = '<table width="100%" border="0" cellspacing="0">' . '<tr><th class="membersHeaderRight">SVN Image</th></tr>' . '<tr><td class="membersRowRight1"><img src="' . $svnurl . $filename . '" alt="" /></td></tr>' . '<tr><td class="membersRowRight2"> </td></tr></table>'; } else { $diffcheck = '<table width="100%" border="0" cellspacing="0">' . '<tr><th class="membersHeaderRight">SVN File</th></tr>' . '<tr><td class="membersRowRight1">' . highlight_php(str_replace("\r\n", "\n", $filesvnsource)) . '</td></tr>' . '</table>'; } } print '<table border="0" cellspacing="6"><tr><td valign="top" align="right">' . "\n"; print border('syellow', 'start', 'MD5 Information for file: ' . $filename) . "\n"; print '<table width="100%" cellspacing="0" border="0" class="bodyline">'; print '<tr><td class="membersRow1">Remote:</td><td class="membersRowRight1">' . $md5remote . "</td></tr>\n"; print '<tr><td class="membersRow2">Local:</td><td class="membersRowRight2">' . $md5local . "</td></tr>\n"; print "</table>\n"; print border('syellow', 'end');
function _getsha($file, $filefullpath) { if (check_if_image($file)) { $d = file_get_contents($filefullpath); $s = filesize($filefullpath); //strlen( $encoded_image ); $x = sha1("blob " . $s . "" . $d); } else { $d = str_replace("\r\n", "\n", file_get_contents_utf8($filefullpath)); $s = strlen($d); $x = sha1("blob " . $s . "" . $d); } return $x; }
/** * Verify version info * */ function VerifyVersions() { global $files, $directories, $problemsev, $severity, $rollups, $totalrollup, $totalseverity, $newerfilesev; // Process verification for all directories, Local and SVN foreach ($files as $directory => $filedata) { // Initialize the Directory severity $files[$directory]['severity'] = 0; // Initialize the File tooltip $files[$directory]['tooltip'] = ''; $files[$directory]['newer'] = 0; $nosvn = 0; $nolocal = 0; foreach ($filedata as $filename => $file) { // Initialize the File severity $files[$directory][$filename]['severity'] = 0; // Initialize the File tooltip $files[$directory][$filename]['tooltip'] = ''; $files[$directory][$filename]['rogue'] = 0; $files[$directory][$filename]['update'] = 0; $files[$directory][$filename]['missing'] = 0; $files[$directory][$filename]['diff'] = 0; $files[$directory][$filename]['newer'] = 0; // Check if Both Local and SVN files are present if (isset($file['local']) && isset($file['remote'])) { // Check if the local description matches the SVN description if (strcmp($file['local']['versionDesc'], $file['remote']['versionDesc'])) { $files[$directory][$filename]['severity'] += $severity[$problemsev['description']]['weight']; $files[$directory][$filename]['tooltip'] .= 'Local Description does NOT match with SVN<br />'; } // Check if the local version matches the SVN version if (version_compare($file['local']['versionRev'], $file['remote']['versionRev']) < 0) { $files[$directory][$filename]['severity'] += $severity[$problemsev['revisiongreater']]['weight']; $files[$directory][$filename]['newer'] = 1; $files[$directory][$filename]['tooltip'] .= 'Local Version: ' . $file['local']['versionRev'] . ' is HIGHER than SVN Version: ' . $file['remote']['versionRev'] . '<br />'; $files[$directory][$filename]['rev'] = $file['local']['versionRev'] . ' < ' . $file['remote']['versionRev']; $files[$directory][$filename]['update'] = 1; $files[$directory][$filename]['diff'] = 1; } elseif (version_compare($file['local']['versionRev'], $file['remote']['versionRev']) > 0) { $files[$directory][$filename]['severity'] += $severity[$problemsev['revisiongreater']]['weight']; $files[$directory][$filename]['tooltip'] .= 'Local Version: ' . $file['local']['versionRev'] . ' is HIGHER than SVN Version: ' . $file['remote']['versionRev'] . '<br />'; $files[$directory][$filename]['rev'] = $file['local']['versionRev'] . ' > ' . $file['remote']['versionRev']; $files[$directory][$filename]['diff'] = 1; } elseif (version_compare($file['local']['versionRev'], $file['remote']['versionRev']) == 0) { $files[$directory][$filename]['rev'] = $file['local']['versionRev']; } // Check if the local date matches the SVN date if ($file['local']['versionDate'] < $file['remote']['versionDate'] && !check_if_image($filename)) { $files[$directory][$filename]['severity'] += $severity[$problemsev['dateolder']]['weight']; $files[$directory][$filename]['tooltip'] .= 'Local Date: ' . gmdate('Y/m/d H:i', $file['local']['versionDate']) . ' is OLDER than SVN Date: ' . gmdate('Y/m/d H:i', $file['remote']['versionDate']) . '<br />'; $files[$directory][$filename]['date'] = gmdate('Y/m/d H:i', $file['local']['versionDate']) . ' < ' . gmdate('Y/m/d H:i', $file['remote']['versionDate']); $files[$directory][$filename]['update'] = 1; $files[$directory][$filename]['diff'] = 1; } elseif ($file['local']['versionDate'] > $file['remote']['versionDate'] && !check_if_image($filename)) { $files[$directory][$filename]['severity'] += $severity[$problemsev['dateyounger']]['weight']; $files[$directory][$filename]['newer'] = 1; $files[$directory][$filename]['tooltip'] .= 'Local Date: ' . gmdate('Y/m/d H:i', $file['local']['versionDate']) . ' is NEWER than SVN Date: ' . gmdate('Y/m/d H:i', $file['remote']['versionDate']) . '<br />'; $files[$directory][$filename]['date'] = gmdate('Y/m/d H:i', $file['local']['versionDate']) . ' > ' . gmdate('Y/m/d H:i', $file['remote']['versionDate']); $files[$directory][$filename]['diff'] = 1; } elseif ($file['local']['versionDate'] == $file['remote']['versionDate'] || check_if_image($filename)) { $files[$directory][$filename]['date'] = gmdate('Y/m/d H:i', $file['local']['versionDate']); } // Check if the local author matches the SVN author if (strcmp($file['local']['versionAuthor'], $file['remote']['versionAuthor'])) { $files[$directory][$filename]['severity'] += $severity[$problemsev['author']]['weight']; $files[$directory][$filename]['tooltip'] .= 'Local Author does NOT match with SVN<br />'; $files[$directory][$filename]['author'] = preg_replace('/@(.+)/i', '', $file['local']['versionAuthor']) . ' != ' . preg_replace('/@(.+)/i', '', $file['remote']['versionAuthor']); $files[$directory][$filename]['diff'] = 1; } else { $files[$directory][$filename]['author'] = preg_replace('/@(.+)/i', '', $file['local']['versionAuthor']); } // Check if the local MD5 matches the SVN MD5 if (strcmp($file['local']['versionMD5'], $file['remote']['versionMD5'])) { if (check_if_image($filename)) { $files[$directory][$filename]['severity'] += $severity[$problemsev['MD5binary']]['weight']; $files[$directory][$filename]['tooltip'] .= 'Local MD5 does not match with SVN<br />'; $files[$directory][$filename]['update'] = 1; } else { $files[$directory][$filename]['severity'] += $severity[$problemsev['MD5']]['weight']; $files[$directory][$filename]['tooltip'] .= 'Local MD5 does not match with SVN<br />'; } $files[$directory][$filename]['md5'] = 'MD5 String does NOT match'; $files[$directory][$filename]['diff'] = 1; } else { $files[$directory][$filename]['md5'] = 'MD5 String Matches'; } } elseif (isset($file['local']) && !isset($file['remote'])) { $files[$directory][$filename]['severity'] += $severity[$problemsev['nosvn']]['weight']; $files[$directory][$filename]['tooltip'] .= 'Local file does not exist in SVN<br />'; $files[$directory][$filename]['rogue'] = 1; $files[$directory][$filename]['rev'] = $file['local']['versionRev']; $files[$directory][$filename]['date'] = gmdate('Y/m/d H:i', $file['local']['versionDate']); $files[$directory][$filename]['author'] = preg_replace('/@(.+)/i', '', $file['local']['versionAuthor']); } elseif (!isset($file['local']) && isset($file['remote'])) { $files[$directory][$filename]['severity'] += $severity[$problemsev['nolocal']]['weight']; $files[$directory][$filename]['tooltip'] .= 'Local file is missing but is present in SVN<br />'; $files[$directory][$filename]['update'] = 1; $files[$directory][$filename]['missing'] = 1; } else { $files[$directory][$filename]['severity'] += $severity[$problemsev['unknown']]['weight']; $files[$directory][$filename]['tooltip'] .= 'Unknown Issue<br />'; } $files[$directory][$filename]['rollup'] = 0; foreach ($rollups as $rollupkey => $rollup) { if ($files[$directory][$filename]['severity'] > $rollup['rollup']) { $files[$directory][$filename]['rollup'] = $rollup['severity']; } } $files[$directory]['severity'] += $files[$directory][$filename]['severity']; if (!$files[$directory][$filename]['severity'] && $files[$directory][$filename]['newer']) { $files[$directory][$filename]['rollup'] = $newerfilesev; $files[$directory]['newer'] = 1; } if ($files[$directory][$filename]['tooltip'] == '' && !$files[$directory][$filename]['severity'] && !$files[$directory][$filename]['rogue'] && !$files[$directory][$filename]['diff'] && !$files[$directory][$filename]['newer']) { $files[$directory][$filename]['tooltip'] .= 'Local file same as SVN<br />'; } if ($files[$directory][$filename]['rogue']) { $files[$directory][$filename]['rollup'] = $problemsev['nosvn']; $nosvn = 1; } if ($files[$directory][$filename]['missing']) { $files[$directory][$filename]['rollup'] = $problemsev['nolocal']; $nolocal = 1; } if ($files[$directory][$filename]['rollup']) { $files[$directory]['tooltip'] .= 'File: ' . $filename . ' - Severity: ' . $files[$directory][$filename]['rollup'] . '<br />'; } } if ($files[$directory]['tooltip'] == '') { $files[$directory]['tooltip'] = 'No File Version Issues!'; } $files[$directory]['rollup'] = 0; foreach ($rollups as $rollupkey => $rollup) { if ($files[$directory]['severity'] > $rollup['rollup']) { $files[$directory]['rollup'] = $rollup['severity']; } } if (!$files[$directory]['severity']) { if ($files[$directory]['newer']) { $files[$directory]['rollup'] = $newerfilesev; } if ($nosvn) { $files[$directory]['rollup'] = $problemsev['nosvn']; } if ($nolocal) { $files[$directory]['rollup'] = $problemsev['nolocal']; } } $totalseverity += $files[$directory]['severity']; } $totalrollup = 0; foreach ($rollups as $rollupkey => $rollup) { if ($files[$directory]['severity'] > $rollup['rollup']) { $totalrollup = $rollup['severity']; } } }