1 <?php declare(strict_types=1);
3 namespace Cli\Services;
9 public static function search(string $directory = ''): string
11 $directoriesToSearch = $directory ? [Paths::resolve($directory)] : [
13 static::getCliDirectory(),
16 var_dump($directoriesToSearch);
18 foreach ($directoriesToSearch as $directory) {
19 if ($directory && static::isProbablyAppDirectory($directory)) {
27 public static function require(string $directory = ''): string
29 $dir = static::search($directory);
32 throw new \Exception('Could not find a valid BookStack installation');
38 protected static function getCliDirectory(): string
40 $scriptDir = dirname(__DIR__);
42 if (str_starts_with($scriptDir, 'phar://')) {
43 return dirname(Phar::running(false));
46 return dirname($scriptDir);
49 protected static function isProbablyAppDirectory(string $directory): bool
51 return file_exists($directory . DIRECTORY_SEPARATOR . 'version')
52 && file_exists($directory . DIRECTORY_SEPARATOR . 'package.json');