From e827e6ddcfa80dd7161a1d0bb427eff8718bf430 Mon Sep 17 00:00:00 2001
From: Johannes Meyer
Date: Mon, 10 Nov 2014 16:45:20 +0100
Subject: [PATCH] Make use of the new CLI module command namespaces
It's now not `icingacli setup showToken' anymore but
`icingacli setup token show' etc.
refs #7163
---
.../application/clicommands/ConfigCommand.php | 63 +++++++++
.../application/clicommands/SetupCommand.php | 121 ------------------
.../application/clicommands/TokenCommand.php | 68 ++++++++++
.../views/scripts/form/setup-welcome.phtml | 4 +-
4 files changed, 133 insertions(+), 123 deletions(-)
create mode 100644 modules/setup/application/clicommands/ConfigCommand.php
delete mode 100644 modules/setup/application/clicommands/SetupCommand.php
create mode 100644 modules/setup/application/clicommands/TokenCommand.php
diff --git a/modules/setup/application/clicommands/ConfigCommand.php b/modules/setup/application/clicommands/ConfigCommand.php
new file mode 100644
index 000000000..a82882fcc
--- /dev/null
+++ b/modules/setup/application/clicommands/ConfigCommand.php
@@ -0,0 +1,63 @@
+ [options]
+ *
+ * OPTIONS:
+ *
+ * --mode The access mode to use. Default is: 2775
+ * --path The path to the configuration directory. If omitted the default is used.
+ *
+ * EXAMPLES:
+ *
+ * icingacli setup config createDirectory apache
+ * icingacli setup config createDirectory apache --mode 2770
+ * icingacli setup config createDirectory apache --path /some/path
+ */
+ public function createDirectoryAction()
+ {
+ $group = $this->params->getStandalone();
+ if ($group === null) {
+ $this->fail($this->translate('The `group\' argument is mandatory.'));
+ return false;
+ }
+
+ $path = $this->params->get('path', $this->app->getConfigDir());
+ if (file_exists($path)) {
+ printf($this->translate("Configuration directory already exists at: %s\n"), $path);
+ return true;
+ }
+
+ $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);
+ umask($old);
+
+ if (chgrp($path, $group) === false) {
+ $this->fail(sprintf($this->translate('Unable to change the group of "%s" to "%s".'), $path, $group));
+ return false;
+ }
+
+ printf($this->translate("Successfully created configuration directory at: %s\n"), $path);
+ }
+}
diff --git a/modules/setup/application/clicommands/SetupCommand.php b/modules/setup/application/clicommands/SetupCommand.php
deleted file mode 100644
index c4d3a73bc..000000000
--- a/modules/setup/application/clicommands/SetupCommand.php
+++ /dev/null
@@ -1,121 +0,0 @@
- []
- */
-class SetupCommand extends Command
-{
- /**
- * Display the current setup token
- *
- * Shows you the current setup token used to authenticate when setting up Icinga Web 2 using the web-based wizard
- *
- * USAGE:
- *
- * icingacli setup showToken
- */
- public function showTokenAction()
- {
- $token = file_get_contents($this->app->getConfigDir() . '/setup.token');
- if (! $token) {
- $this->fail(
- $this->translate('Nothing to show. Please create a new setup token using the generateToken action.')
- );
- }
-
- printf($this->translate("The current setup token is: %s\n"), $token);
- }
-
- /**
- * Create a new setup token
- *
- * Re-generates the setup token used to authenticate when setting up Icinga Web 2 using the web-based wizard.
- *
- * USAGE:
- *
- * icingacli setup generateToken
- */
- public function generateTokenAction()
- {
- if (function_exists('openssl_random_pseudo_bytes')) {
- $token = bin2hex(openssl_random_pseudo_bytes(8));
- } else {
- $token = substr(md5(mt_rand()), 16);
- }
-
- $filepath = $this->app->getConfigDir() . '/setup.token';
-
- if (false === file_put_contents($filepath, $token)) {
- $this->fail(sprintf($this->translate('Cannot write setup token "%s" to disk.'), $filepath));
- }
-
- if (false === chmod($filepath, 0660)) {
- $this->fail(sprintf($this->translate('Cannot change access mode of "%s" to %o.'), $filepath, 0660));
- }
-
- printf($this->translate("The newly generated setup token is: %s\n"), $token);
- }
-
- /**
- * Create the configuration directory
- *
- * This command creates the configuration directory for Icinga Web 2. The `group' argument
- * is mandatory and should be the groupname of the user your web server is running as.
- *
- * USAGE:
- *
- * icingacli setup createConfigDirectory [options]
- *
- * OPTIONS:
- *
- * --mode The access mode to use. Default is: 2775
- * --path The path to the configuration directory. If omitted the default is used.
- *
- * EXAMPLES:
- *
- * icingacli setup createConfigDirectory apache
- * icingacli setup createConfigDirectory apache --mode 2770
- * icingacli setup createConfigDirectory apache --path /some/path
- */
- public function createConfigDirectoryAction()
- {
- $group = $this->params->getStandalone();
- if ($group === null) {
- $this->fail($this->translate('The `group\' argument is mandatory.'));
- return false;
- }
-
- $path = $this->params->get('path', $this->app->getConfigDir());
- if (file_exists($path)) {
- printf($this->translate("Configuration directory already exists at: %s\n"), $path);
- return true;
- }
-
- $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);
- umask($old);
-
- if (chgrp($path, $group) === false) {
- $this->fail(sprintf($this->translate('Unable to change the group of "%s" to "%s".'), $path, $group));
- return false;
- }
-
- printf($this->translate("Successfully created configuration directory at: %s\n"), $path);
- }
-}
diff --git a/modules/setup/application/clicommands/TokenCommand.php b/modules/setup/application/clicommands/TokenCommand.php
new file mode 100644
index 000000000..ff0229cfe
--- /dev/null
+++ b/modules/setup/application/clicommands/TokenCommand.php
@@ -0,0 +1,68 @@
+
+ */
+class TokenCommand extends Command
+{
+ /**
+ * Display the current setup token
+ *
+ * Shows you the current setup token used to authenticate when setting up Icinga Web 2 using the web-based wizard.
+ *
+ * USAGE:
+ *
+ * icingacli setup token show
+ */
+ public function showAction()
+ {
+ $token = file_get_contents($this->app->getConfigDir() . '/setup.token');
+ if (! $token) {
+ $this->fail(
+ $this->translate('Nothing to show. Please create a new setup token using the generateToken action.')
+ );
+ }
+
+ printf($this->translate("The current setup token is: %s\n"), $token);
+ }
+
+ /**
+ * Create a new setup token
+ *
+ * Re-generates the setup token used to authenticate when setting up Icinga Web 2 using the web-based wizard.
+ *
+ * USAGE:
+ *
+ * icingacli setup token create
+ */
+ public function createAction()
+ {
+ if (function_exists('openssl_random_pseudo_bytes')) {
+ $token = bin2hex(openssl_random_pseudo_bytes(8));
+ } else {
+ $token = substr(md5(mt_rand()), 16);
+ }
+
+ $filepath = $this->app->getConfigDir() . '/setup.token';
+
+ if (false === file_put_contents($filepath, $token)) {
+ $this->fail(sprintf($this->translate('Cannot write setup token "%s" to disk.'), $filepath));
+ }
+
+ if (false === chmod($filepath, 0660)) {
+ $this->fail(sprintf($this->translate('Cannot change access mode of "%s" to %o.'), $filepath, 0660));
+ }
+
+ printf($this->translate("The newly generated setup token is: %s\n"), $token);
+ }
+}
diff --git a/modules/setup/application/views/scripts/form/setup-welcome.phtml b/modules/setup/application/views/scripts/form/setup-welcome.phtml
index f2e34054c..56f566b6f 100644
--- a/modules/setup/application/views/scripts/form/setup-welcome.phtml
+++ b/modules/setup/application/views/scripts/form/setup-welcome.phtml
@@ -65,8 +65,8 @@ $setupTokenPath = rtrim(Icinga::app()->getConfigDir(), '/') . '/setup.token';
); ?>
= t('If you\'ve got the IcingaCLI installed you can do the following:'); ?>
- icingacli setup createConfigDirectory = ($user = Platform::getPhpUser()) !== null ? $user : 'your_webserver_group'; ?>;
- icingacli setup generateToken;
+ icingacli setup config createDirectory = ($user = Platform::getPhpUser()) !== null ? $user : 'your_webserver_group'; ?>;
+ icingacli setup token create;
= t('In case the IcingaCLI is missing you can create the token manually:'); ?>