aboutsummaryrefslogtreecommitdiffstats
path: root/console.php
diff options
context:
space:
mode:
authorskjnldsv <skjnldsv@protonmail.com>2024-02-28 15:53:36 +0100
committerskjnldsv <skjnldsv@protonmail.com>2024-02-28 15:54:55 +0100
commit9123d6fffeec7bf20bea26a30121f578164d72bb (patch)
tree2c9ac0ddcd4aafba2d1322eb3bb842e9ca7e7385 /console.php
parentae3b9cce996b631c5768842565b028b59156d347 (diff)
downloadnextcloud-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.php31
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;