Initial commit

This commit is contained in:
Mikko Ahlroth 2013-07-05 10:56:14 +03:00
commit 877e01be76

54
multitail.php Normal file
View file

@ -0,0 +1,54 @@
<?php
const TAIL_CMD = 'tail -F %s';
$log_globs = array_slice($argv, 1);
$files = [];
foreach ($log_globs as $glob)
{
$files += glob($glob);
}
$pipes = [];
if (count($files) == 0)
{
fwrite(STDERR, 'No files given!');
return 1;
}
foreach ($files as $id => $file)
{
$newkey = basename($file);
if (is_string($id))
{
$newkey = $id;
}
$pipes[$newkey] = popen(sprintf(TAIL_CMD, escapeshellarg($file)), 'r');
stream_set_blocking($pipes[$newkey], 0);
}
$w = null;
$e = null;
while (true)
{
$read = $pipes;
$modified = stream_select($read, $w, $e, null);
if ($modified > 0)
{
foreach ($read as $file => $pipe)
{
$file = explode('.', $file)[0];
while ($line = fgets($pipe))
{
echo $file, ': ', $line;
}
}
}
}
return 0;