summaryrefslogtreecommitdiffstats
path: root/source/Command/VerifyInstallation
diff options
context:
space:
mode:
Diffstat (limited to 'source/Command/VerifyInstallation')
-rw-r--r--source/Command/VerifyInstallation/AbstractCommand.php50
-rw-r--r--source/Command/VerifyInstallation/LocalFiles.php70
-rw-r--r--source/Command/VerifyInstallation/Version.php40
3 files changed, 160 insertions, 0 deletions
diff --git a/source/Command/VerifyInstallation/AbstractCommand.php b/source/Command/VerifyInstallation/AbstractCommand.php
new file mode 100644
index 0000000..d64a680
--- /dev/null
+++ b/source/Command/VerifyInstallation/AbstractCommand.php
@@ -0,0 +1,50 @@
+<?php
+/**
+ * @author stev leibelt <artodeto@bazzline.net>
+ * @since 2014-08-21
+ */
+
+/**
+ * Class Command_VerifyInstallation_AbstractCommand
+ */
+abstract class Command_VerifyInstallation_AbstractCommand extends Command_AbstractCommand
+{
+ /**
+ * @var AbstractApplication
+ */
+ protected $application;
+
+ /**
+ * @var Filesystem
+ */
+ protected $filesystem;
+
+ /**
+ * @var Configuration_Path
+ */
+ protected $pathConfiguration;
+
+ /**
+ * @param AbstractApplication $application
+ */
+ public function setApplication(AbstractApplication $application)
+ {
+ $this->application = $application;
+ }
+
+ /**
+ * @param Filesystem $filesystem
+ */
+ public function setFilesystem(Filesystem $filesystem)
+ {
+ $this->filesystem = $filesystem;
+ }
+
+ /**
+ * @param Configuration_Path $configuration
+ */
+ public function setPathConfiguration(Configuration_Path $configuration)
+ {
+ $this->pathConfiguration = $configuration;
+ }
+} \ No newline at end of file
diff --git a/source/Command/VerifyInstallation/LocalFiles.php b/source/Command/VerifyInstallation/LocalFiles.php
new file mode 100644
index 0000000..dafd44a
--- /dev/null
+++ b/source/Command/VerifyInstallation/LocalFiles.php
@@ -0,0 +1,70 @@
+<?php
+/**
+ * @author stev leibelt <artodeto@bazzline.net>
+ * @since 2014-08-21
+ */
+
+/**
+ * Class Command_VerifyInstallation_LocalFiles
+ */
+class Command_VerifyInstallation_LocalFiles extends Command_VerifyInstallation_AbstractCommand
+{
+ /**
+ * @throws Exception
+ */
+ public function execute()
+ {
+ $pathToLibDirectory = $this->pathConfiguration->getChatPath() . DIRECTORY_SEPARATOR . 'lib';
+
+ if (!$this->filesystem->isDirectory($pathToLibDirectory)) {
+ throw new Exception(
+ 'directory "lib" is missing, installation needed'
+ );
+ }
+
+ $pathToDataDirectory = $pathToLibDirectory . DIRECTORY_SEPARATOR . 'data';
+
+ if (!$this->filesystem->isDirectory($pathToDataDirectory)) {
+ throw new Exception(
+ 'directory "data" is missing, installation needed'
+ );
+ }
+
+ $identifierToPublicPath = array(
+ 'channels' => $this->pathConfiguration->getChatChannelsFilePath(),
+ 'pathConfiguration' => $this->pathConfiguration->getChatConfigurationFilePath(),
+ 'users' => $this->pathConfiguration->getChatUsersFilePath(),
+ 'version' => $this->pathConfiguration->getChatVersionFilePath()
+ );
+
+ foreach ($identifierToPublicPath as $identifier => $path) {
+ if (!$this->filesystem->isFile($path)) {
+ throw new Exception(
+ 'file "' . $identifier . '" is missing, installation needed'
+ );
+ }
+ }
+
+ $pathToInstallPhp = $this->pathConfiguration->getChatPath() . DIRECTORY_SEPARATOR . 'install.php';
+
+ if ($this->filesystem->isFile($pathToInstallPhp)) {
+ throw new Exception(
+ 'file "' . $pathToInstallPhp . '" still available'
+ );
+ }
+ }
+
+ /**
+ * @return array
+ */
+ public function getUsage()
+ {
+ }
+
+ /**
+ * @throws Exception
+ */
+ public function verify()
+ {
+ }
+} \ No newline at end of file
diff --git a/source/Command/VerifyInstallation/Version.php b/source/Command/VerifyInstallation/Version.php
new file mode 100644
index 0000000..a2f592b
--- /dev/null
+++ b/source/Command/VerifyInstallation/Version.php
@@ -0,0 +1,40 @@
+<?php
+/**
+ * @author stev leibelt <artodeto@bazzline.net>
+ * @since 2014-08-21
+ */
+
+/**
+ * Class Command_VerifyInstallation_Version
+ */
+class Command_VerifyInstallation_Version extends Command_VerifyInstallation_AbstractCommand
+{
+ /**
+ * @throws Exception
+ */
+ public function execute()
+ {
+ $exampleVersion = $this->application->getExampleVersion();
+ $currentVersion = $this->application->getCurrentVersion();
+
+ if ($exampleVersion !== $currentVersion) {
+ throw new Exception(
+ 'current version "' . $currentVersion . '" and code version "' . $exampleVersion . '" differs, update needed'
+ );
+ }
+ }
+
+ /**
+ * @return array
+ */
+ public function getUsage()
+ {
+ }
+
+ /**
+ * @throws Exception
+ */
+ public function verify()
+ {
+ }
+} \ No newline at end of file