diff options
author | skjnldsv <skjnldsv@protonmail.com> | 2024-02-28 15:53:36 +0100 |
---|---|---|
committer | skjnldsv <skjnldsv@protonmail.com> | 2024-02-28 15:54:55 +0100 |
commit | 9123d6fffeec7bf20bea26a30121f578164d72bb (patch) | |
tree | 2c9ac0ddcd4aafba2d1322eb3bb842e9ca7e7385 /console.php | |
parent | ae3b9cce996b631c5768842565b028b59156d347 (diff) | |
download | nextcloud-server-9123d6fffeec7bf20bea26a30121f578164d72bb.tar.gz nextcloud-server-9123d6fffeec7bf20bea26a30121f578164d72bb.zip |
fix(cli): do not check the data directory if not setup
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
Diffstat (limited to 'console.php')
-rw-r--r-- | console.php | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/console.php b/console.php index 79329f5468c..68647a874c4 100644 --- a/console.php +++ b/console.php @@ -57,25 +57,36 @@ try { exit(1); } - set_exception_handler('exceptionHandler'); - $config = \OC::$server->getConfig(); + set_exception_handler('exceptionHandler'); if (!function_exists('posix_getuid')) { echo "The posix extensions are required - see https://www.php.net/manual/en/book.posix.php" . PHP_EOL; exit(1); } - $user = posix_getuid(); - $dataDirectoryUser = fileowner($config->getSystemValueString('datadirectory', \OC::$SERVERROOT . '/data')); - if ($user !== $dataDirectoryUser) { - echo "Console has to be executed with the user that owns the data directory" . PHP_EOL; - echo "Current user id: " . $user . PHP_EOL; - echo "Owner id of the data directory: " . $dataDirectoryUser . PHP_EOL; - echo "Try adding 'sudo -u #" . $dataDirectoryUser . "' to the beginning of the command (without the single quotes)" . PHP_EOL; - echo "If running with 'docker exec' try adding the option '-u " . $dataDirectoryUser . "' to the docker command (without the single quotes)" . PHP_EOL; + + // Check if the data directory is available and the server is installed + $dataDirectory = $config->getSystemValueString('datadirectory', \OC::$SERVERROOT . '/data'); + if ($config->getSystemValueBool('installed', false) && !is_dir($dataDirectory)) { + echo "Data directory (" . $dataDirectory . ") not found" . PHP_EOL; exit(1); } + // Check if the user running the console is the same as the user that owns the data directory + // If the data directory does not exist, the server is not setup yet and we can skip. + if (is_dir($dataDirectory)) { + $user = posix_getuid(); + $dataDirectoryUser = fileowner($dataDirectory); + if ($user !== $dataDirectoryUser) { + echo "Console has to be executed with the user that owns the data directory" . PHP_EOL; + echo "Current user id: " . $user . PHP_EOL; + echo "Owner id of the data directory: " . $dataDirectoryUser . PHP_EOL; + echo "Try adding 'sudo -u #" . $dataDirectoryUser . "' to the beginning of the command (without the single quotes)" . PHP_EOL; + echo "If running with 'docker exec' try adding the option '-u " . $dataDirectoryUser . "' to the docker command (without the single quotes)" . PHP_EOL; + exit(1); + } + } + $oldWorkingDir = getcwd(); if ($oldWorkingDir === false) { echo "This script can be run from the Nextcloud root directory only." . PHP_EOL; |