/** * Initialise the application. */ protected function init() { $dirs = ['slicer-dir' => base_path('slicer'), 'tmp-dir' => base_path('slicer/tmp'), 'updates-dir' => base_path('slicer/updates'), 'backup-dir' => base_path('slicer/backup')]; $this->slicer = Factory::create(); if ('' !== $this->slicer->getConfig()->getSlicerDir()) { $dir['slicer-dir'] = $this->slicer->getConfig()->getSlicerDir(); } if ('' !== $this->slicer->getConfig()->getStorage()['tmp-dir']) { $dirs['tmp-dir'] = $this->slicer->getConfig()->getStorage()['tmp-dir']; } if ('' !== $this->slicer->getConfig()->getStorage()['update-dir']) { $dirs['updates-dir'] = $this->slicer->getConfig()->getStorage()['update-dir']; } if ('' !== $this->slicer->getConfig()->getStorage()['backup-dir']) { $dirs['backup-dir'] = $this->slicer->getConfig()->getStorage()['backup-dir']; } foreach ($dirs as $dir) { if (!is_writable(dirname($dir))) { echo "'{$dir}' is not writable"; exit(1); } if (!is_readable(dirname($dir))) { echo "'{$dir}' is not readable"; exit(1); } @mkdir($dir, 0777, TRUE); } }
/** * Create a Slicer instance. * * @return Slicer */ public function createSlicer() { $config = Factory::createConfig(); $slicer = new Slicer(); $slicer->setConfig($config); $slicer->setEventDispatcher(new EventDispatcher()); $slicer->setEventDispatcher($slicer->getEventDispatcher()); $slicer->setUpdateManager(new UpdateManager($config)); $slicer->setDownloadManager(new DownloadManager($config)); $slicer->setBackupManager(new BackupManager($config)); $slicer->setInstallationManager(new InstallationManager($config)); $slicer->getUpdateManager()->setDownloadManager($slicer->getDownloadManager())->setEventDispatcher($slicer->getEventDispatcher()); $slicer->getDownloadManager()->setEventDispatcher($slicer->getEventDispatcher()); $slicer->getBackupManager()->setEventDispatcher($slicer->getEventDispatcher()); $slicer->getInstallationManager()->setEventDispatcher($slicer->getEventDispatcher()); return $slicer; }