From 74154f7afd11bb6a8c82d5b254ba136e61ece91c Mon Sep 17 00:00:00 2001 From: michael Date: Mon, 18 Mar 2024 22:57:49 +0800 Subject: [PATCH 1/2] make directory recursive Signed-off-by: michael --- src/Tools/Utils.php | 6 ++++++ src/Writing/Writer.php | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Tools/Utils.php b/src/Tools/Utils.php index e7db3e15..114de014 100644 --- a/src/Tools/Utils.php +++ b/src/Tools/Utils.php @@ -9,6 +9,7 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\BelongsToMany; use Illuminate\Routing\Route; +use Illuminate\Support\Facades\File; use Illuminate\Support\Str; use Knuckles\Scribe\Exceptions\CouldntFindFactory; use Knuckles\Scribe\Exceptions\CouldntGetRouteDetails; @@ -191,6 +192,11 @@ public static function copyDirectory(string $src, string $dest): void } } + public static function makeDirectoryRecursive(string $dir): void + { + File::isDirectory($dir) || File::makeDirectory($dir, 0777, true, true); + } + public static function deleteFilesMatching(string $dir, callable $condition): void { if (class_exists(LocalFilesystemAdapter::class)) { diff --git a/src/Writing/Writer.php b/src/Writing/Writer.php index d9fa1602..69db61cc 100644 --- a/src/Writing/Writer.php +++ b/src/Writing/Writer.php @@ -3,7 +3,6 @@ namespace Knuckles\Scribe\Writing; use Illuminate\Support\Facades\Storage; -use Illuminate\Support\Str; use Knuckles\Scribe\Tools\ConsoleOutputUtils as c; use Knuckles\Scribe\Tools\DocumentationConfig; use Knuckles\Scribe\Tools\Globals; @@ -96,6 +95,7 @@ protected function writeOpenAPISpec(array $parsedRoutes): void $spec = $this->generateOpenAPISpec($parsedRoutes); if ($this->isStatic) { + Utils::makeDirectoryRecursive($this->staticTypeOutputPath); $specPath = "{$this->staticTypeOutputPath}/openapi.yaml"; file_put_contents($specPath, $spec); } else { From efdec576e6b518f0c85de4b08dab82fb0eea37ce Mon Sep 17 00:00:00 2001 From: michael Date: Tue, 19 Mar 2024 10:53:31 +0800 Subject: [PATCH 2/2] add utils test case Signed-off-by: michael --- tests/Unit/UtilsTest.php | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 tests/Unit/UtilsTest.php diff --git a/tests/Unit/UtilsTest.php b/tests/Unit/UtilsTest.php new file mode 100644 index 00000000..a5eab141 --- /dev/null +++ b/tests/Unit/UtilsTest.php @@ -0,0 +1,23 @@ +assertDirectoryExists($dir); // Directory exists + + if (rmdir($dir)) { // Remove the directory + dump("Directory deleted successfully: $dir"); + } else { // If deletion fails, you can handle the error as needed + dump("Failed to delete directory: $dir"); + } + } +}