Skip to content

Commit d6e0a33

Browse files
authored
Merge pull request #135 from opcodesio/bug/division-by-zero-on-empty-files
fix division by zero when there are empty log files
2 parents 471c8ff + 56f5a00 commit d6e0a33

File tree

4 files changed

+21
-2
lines changed

4 files changed

+21
-2
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "opcodesio/log-viewer",
3-
"version": "v1.6.1",
3+
"version": "v1.6.2",
44
"description": "Fast and easy-to-use log viewer for your Laravel application",
55
"keywords": [
66
"arukompas",

src/Http/Controllers/IsScanRequiredController.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,15 @@ public function __invoke()
2020
$file = $filesRequiringScans->filter(fn ($file) => $file->sizeInMB() > 10)->first();
2121

2222
if (is_null($file)) {
23-
$file = $filesRequiringScans->sortByDesc(fn ($file) => $file->size())->first();
23+
$file = $filesRequiringScans
24+
->sortByDesc(fn ($file) => $file->size())
25+
->filter(fn ($file) => $file->size() > 0)
26+
->first();
27+
}
28+
29+
if (is_null($file)) {
30+
// Haven't found any files that are not empty. No scan required.
31+
return response()->json(['requires_scan' => false]);
2432
}
2533

2634
$scanStart = microtime(true);

src/LogReader.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -579,6 +579,11 @@ public function requiresScan(): bool
579579

580580
public function percentScanned(): int
581581
{
582+
if ($this->file->size() <= 0) {
583+
// empty file, so assume it has been fully scanned.
584+
return 100;
585+
}
586+
582587
return 100 - intval(($this->numberOfNewBytes() / $this->file->size() * 100));
583588
}
584589

src/MultipleLogReader.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,12 @@ public function requiresScan(): bool
190190
public function percentScanned(): int
191191
{
192192
$totalFileBytes = $this->fileCollection->sum->size();
193+
194+
if ($totalFileBytes <= 0) {
195+
// empty files, so assume they've been fully scanned
196+
return 100;
197+
}
198+
193199
$missingScansBytes = $this->fileCollection->sum(function (LogFile $file) {
194200
return $this->getLogQueryForFile($file)->numberOfNewBytes();
195201
});

0 commit comments

Comments
 (0)