diff --git a/lib/Ebook.php b/lib/Ebook.php index f789d938..81310f54 100644 --- a/lib/Ebook.php +++ b/lib/Ebook.php @@ -690,9 +690,8 @@ class Ebook{ $historyEntries = explode("\n", shell_exec('cd ' . escapeshellarg($ebookFromFilesystem->RepoFilesystemPath) . ' && git log -n5 --pretty=format:"%ct %H %s"')); $gitCommits = []; - foreach($historyEntries as $entry){ - $array = explode(' ', $entry, 3); - $gitCommits[] = GitCommit::FromLog($array[0], $array[1], $array[2]); + foreach($historyEntries as $logLine){ + $gitCommits[] = GitCommit::FromLogLine($logLine); } $ebookFromFilesystem->GitCommits = $gitCommits; diff --git a/lib/GitCommit.php b/lib/GitCommit.php index a0db7fb9..70a237dd 100644 --- a/lib/GitCommit.php +++ b/lib/GitCommit.php @@ -10,14 +10,17 @@ class GitCommit{ /** * @throws Exceptions\InvalidGitCommitException */ - public static function FromLog(string $unixTimestamp, string $hash, string $message): GitCommit{ + public static function FromLogLine(string $logLine): GitCommit{ $instance = new GitCommit(); + list($unixTimestamp, $hash, $message) = explode(' ', $logLine, 3); + try{ $instance->Created = new DateTimeImmutable('@' . $unixTimestamp); } catch(\Exception){ throw new Exceptions\InvalidGitCommitException('Invalid timestamp for Git commit.'); } + $instance->Message = $message; $instance->Hash = $hash; return $instance;