From b21a29406185b799db83e768d9b9704e988ddb8e Mon Sep 17 00:00:00 2001 From: Nicolas Castro Date: Wed, 27 Jan 2021 19:08:38 -0300 Subject: [PATCH] added support to process diff files --- README.md | 20 +++----------------- git_diff_renderer.php | 23 ++++++++++++++++++++--- 2 files changed, 23 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index ff9c95f..591eff3 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,9 @@ If we're auditing text, then we want to keep the text, right? This script that t - From your browser: Access to `http://localhost/git_diff_renderer/git_diff_renderer.php?path=path/to/your/git/repo/folder`. Replace `localhost` by a valid host. - From command line: `php -f git_diff_renderer.php path=path/to/your/git/repo/folder > output.html` +You can also process a diff file (a file with the output of a previous `git diff` execution) passing the file path instead of a directory. + + ![screenshot](screenshot.png) @@ -29,20 +32,3 @@ _Why inline styles?_ _What about Composer?_ - This library isn't conceived to be used as part of a project (please don't). So composer.. nope. - - -``` -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@@@@@.....................@@@@@@@@@@@@@@@@@ -@@@@@@@@@@@@@.............. @@@@................@@@@@@@@@@@@ -@@@@@@@@...................@@@@......................@@@@@@@ -@@@@@........@@@@@@@@@@ .. @@@@@@@@@ ...@@@@@@@@@ ......@@@@ -@@...........@@@ ****@@@@ @@@@ ***@@@@ @@@ ****@@@@ ......@@ -@...........@@@@......@@@ @@@ ... @@@..@@@..... @@@ ......@@ -@.......... @@@ ... @@@@ @@@@.... @@@ @@@ ... @@@@ .......@@ -@@.........@@@@@@@@@@....@@@ ... @@@..@@@@@@@@@..........@@@ -@@@@...... @@@ ......................@@@ ...............@@@@ -@@@@@@@... ...................... ............@@@@@@@ -@@@@@@@@@@@....................................@@@@@@@@@@@@@ -@@@@@@@@@@@@@@@@@@...................@@@@@@@@@@@@@@@@@@@@@@@ -``` diff --git a/git_diff_renderer.php b/git_diff_renderer.php index 00302dd..6b28fab 100644 --- a/git_diff_renderer.php +++ b/git_diff_renderer.php @@ -174,13 +174,13 @@ public static function formattedOutput(array $lines): void } -class GitDiffCommand +class GitDiffCommandReader { public static function run($path): array { $output = []; - $retcode = []; + $retcode = null; chdir($path); exec('git diff', $output, $retcode); @@ -190,6 +190,16 @@ public static function run($path): array } +class FileReader +{ + + public static function run($path): array + { + return ['path' => $path, 'output' => file($path), 'retcode' => 0]; + } + +} + class GitDiffRenderer { @@ -198,7 +208,14 @@ class GitDiffRenderer static function execute(\Request $request): array { $path = $request->getParam('path', null, self::PATH_NOT_SET_MSG); - return GitDiffCommand::run($path); + + if (is_file($path)) { + return FileReader::run($path); + } elseif (is_dir($path)) { + return GitDiffCommandReader::run($path); + } else { + die('Specified path is not a directory of a file.'); + } } }