diff --git a/.check_md5.php.swp b/.check_md5.php.swp index 12e8813..10f7d03 100644 Binary files a/.check_md5.php.swp and b/.check_md5.php.swp differ diff --git a/check_md5.php b/check_md5.php index 2106a23..8990eff 100755 --- a/check_md5.php +++ b/check_md5.php @@ -1,20 +1,25 @@ #!/usr/bin/php5 0) case '--file': $filename = $o[1]; - echo $filename . "\n"; break; case '--md5': @@ -90,12 +96,14 @@ if(sizeof($opts) > 0) break; case '--warning': - echo ""; + $warning = "yes"; break; } } } + +// Sanity checks if (empty($filename)) { fwrite(STDERR,"A filename is requierd\n"); @@ -107,14 +115,36 @@ if (empty($md5)) fwrite(STDERR,"You need to enter an MD5 checksum\n"); exit($STATE_UNKNOWN); } + +// MAIN +// Compare the file against the MD5 checksum $file = md5_file($filename); -if ($file == $md5) +if ($file == $md5) // Checksum is ok { - echo "They match\n"; + fwrite(STDOUT, "$filename has a corect MD5 checksum\n"); + exit($STATE_OK); } -echo $file; -echo "\n\n"; + +elseif ($file != $md5) // Checksum is not ok +{ + fwrite(STDERR, "$filename does NOT match MD5 checksum\n"); + if ($warning == "yes") // Fail as warning + { + exit($STATE_WARNING); + } + elseif ($warning == "no") // Fail as critical + { + exit($STATE_CRITICAL); + } +} + +else // Fail as unknown, something went haywire +{ + fwrite(STDERR, "Unkown state\n"); + exit($STATE_UNKNOWN); +} + ?>