From 9589919ae84e41cb505078ec641b4715dff74bff Mon Sep 17 00:00:00 2001 From: Johannes Meyer Date: Mon, 27 Oct 2014 08:34:37 +0100 Subject: [PATCH] Create sub directories with the CLI's setup command as well refs #7163 --- application/clicommands/SetupCommand.php | 43 ++++++++++++++++++------ 1 file changed, 33 insertions(+), 10 deletions(-) diff --git a/application/clicommands/SetupCommand.php b/application/clicommands/SetupCommand.php index 635ecb519..182d6178f 100644 --- a/application/clicommands/SetupCommand.php +++ b/application/clicommands/SetupCommand.php @@ -100,22 +100,45 @@ class SetupCommand extends Command return false; } - $path = $this->params->get('path', $this->app->getConfigDir()); - if (file_exists($path)) { - $this->fail(sprintf($this->translate('Path "%s" already exists.'), $path)); + $configPath = $this->params->get('path', $this->app->getConfigDir()); + if (file_exists($configPath)) { + $this->fail(sprintf($this->translate('Path "%s" already exists.'), $configPath)); + return false; + } + if (false === mkdir($configPath)) { + $this->fail(sprintf($this->translate('Unable to create path: %s'), $configPath)); + return false; + } + + $moduleConfigPath = $configPath . '/modules'; + if (false === mkdir($moduleConfigPath)) { + $this->fail(sprintf($this->translate('Unable to create path: %s'), $moduleConfigPath)); + return false; + } + + $preferencesPath = $configPath . '/preferences'; + if (false === mkdir($preferencesPath)) { + $this->fail(sprintf($this->translate('Unable to create path: %s'), $preferencesPath)); + return false; + } + + $enabledModulesPath = $configPath . '/enabledModules'; + if (false === mkdir($enabledModulesPath)) { + $this->fail(sprintf($this->translate('Unable to create path: %s'), $enabledModulesPath)); return false; } $mode = octdec($this->params->get('mode', '2775')); - if (false === mkdir($path)) { - $this->fail(sprintf($this->translate('Unable to create path: %s'), $path)); - return false; - } - $old = umask(0); // Prevent $mode from being mangled by the system's umask ($old) - chmod($path, $mode); + chmod($configPath, $mode); + chmod($moduleConfigPath, $mode); + chmod($preferencesPath, $mode); + chmod($enabledModulesPath, $mode); umask($old); - chgrp($path, $group); + chgrp($configPath, $group); + chgrp($moduleConfigPath, $group); + chgrp($preferencesPath, $group); + chgrp($enabledModulesPath, $group); } /**