/** * Execute this command. * * @return int|void */ protected function doExecute() { $type = $this->getOption('s') ? 'sql' : 'yaml'; $model = new SchemaModel(); if ($this->getOption('a')) { $profiles = ProfileHelper::getAllProfiles(); } else { $profiles = $this->io->getArguments() ?: array(ProfileHelper::getProfile()); } $config = Factory::getConfig(); foreach ($profiles as $profile) { $config->set('profile', $profile); // Check schema. $path = $model->getPath($type); if (file_exists($path) && !$this->getOption('y')) { $prompter = new BooleanPrompter(sprintf('Schema file <info>%s</info> exists, do you want to override it? [Y/n]: ', $profile)); if (!$prompter->ask()) { $this->out('cancelled.'); return; } } // Exporting $this->out()->out('<comment>Exporting</comment> profile schema: <info>' . $profile . '</info>'); $model->export($type); $this->out()->out(sprintf('Schema file dumped to: <info>%s</info>', $model->getState()->get('dump.path'))); } /* $yaml = $this->getOption('yaml'); $exporter = $yaml ? new YamlExporter : new SqlExporter; $result = $exporter->export(); $config = \JFactory::getConfig(); $file = 'site-' . $config->get('db') . '-' . date('Y-m-d-H-i-s'); if ($yaml) { $file .= '.yml'; } else { $file .= '.sql'; } $file = JCONSOLE . '/jconsole/resource/sql/export/' . ($yaml ? 'yaml/' : '') . $file; \JFile::write($file, $result); $this->out()->out(sprintf('Sql file dumped to: %s', $file)); */ }
/** * Execute this command. * * @throws \Exception * @return int|void */ protected function doExecute() { $name = $this->getArgument(0); if (!$name) { throw new \Exception('Please enter a profile name.'); } if (!$this->getOption('y')) { $prompter = new BooleanPrompter('Do you really want to remove "' . $name . '" profile? [Y/n]: '); if (!$prompter->ask()) { return false; } } $model = new ProfileModel(); $model->remove($name); $this->out()->out(sprintf('Profile "%s" removed.', $name)); return true; }
/** * Execute this command. * * @throws \RuntimeException * @return int|void */ protected function doExecute() { $type = $this->getOption('s') ? 'sql' : 'yaml'; $model = new SchemaModel(); $path = $model->getPath($type); if (file_exists($path) && !$this->getOption('y')) { $prompter = new BooleanPrompter('This action will compare and update your sql schema [Y/n]: '); if (!$prompter->ask()) { $this->out('cancelled.'); return; } } elseif (!file_exists($path)) { throw new \RuntimeException('Schema file not exists.'); } $force = $this->getOption('f'); if ($force) { throw new \RuntimeException('Sorry, force mode not prepare yet...'); } $state = $model->getState(); if ($this->getOption('a')) { $profiles = ProfileHelper::getAllProfiles(); } else { $profiles = $this->io->getArguments() ?: array(ProfileHelper::getProfile()); } $config = Factory::getConfig(); foreach ($profiles as $profile) { $config->set('profile', $profile); // Backup $this->out()->out(sprintf('<comment>Backing up</comment> profile <info>%s</info> ...', $profile)); $model->backup(); $this->out()->out(sprintf('Schema file backup to: %s', $model->getState()->get('dump.path'))); // Import $this->out()->out(sprintf('<option>Importing</option> profile schema: <info>%s</info> ...', $profile)); $model->import($force, $type); $this->out()->out(sprintf('Schema file dumped to: %s', $model->getState()->get('dump.path'))); // Report $analyze = $state->get('import.analyze'); foreach ($analyze as $table => $schema) { $this->out()->out($table . ':'); foreach ($schema as $action => $count) { $this->out(' ' . $action . ': ' . $count); } } } return; }
/** * doExecute * * @return integer */ protected function doExecute() { $projectRoot = $this->app->get('project.path.data'); $systemRoot = WINDWALKER_ROOT; $boolPrompter = new BooleanPrompter(); if (!$boolPrompter->ask('This action will remove all current files, are you sure to continue? [<comment>Y/n</comment>]: ')) { $this->out('<comment>canceled.</comment>')->out(); return true; } $this->out()->out('<comment>Start initialise Vaseman project.</comment>')->out(); $this->copyFolder($systemRoot . '/media', $projectRoot . '/media'); $this->copyFolder($systemRoot . '/entries', $projectRoot . '/entries'); $this->copyFolder($systemRoot . '/layouts', $projectRoot . '/layouts'); $this->copyFile($systemRoot . '/etc/config.yml', $projectRoot . '/config.yml'); $this->createFolder($projectRoot . '/src/Plugin'); $this->createFolder($projectRoot . '/src/Helper'); $this->createFolder($projectRoot . '/src/Twig'); $this->out()->out('<info>Project generated.</info>')->out(); return true; }
/** * Execute this command. * * @throws \RuntimeException * @return int|void */ protected function doExecute() { $model = new SchemaModel(); $path = $model->backupPath; if (file_exists($path) && !$this->getOption('y')) { $prompter = new BooleanPrompter('Are you sure you want to restore? [Y/n]: '); if (!$prompter->ask()) { $this->out('cancelled.'); return; } } if (!file_exists($path)) { throw new \RuntimeException('Backup file not exists.'); } $this->out()->out('Restoring...'); $model->restore(); $state = $model->getState(); $queries = $state->get('import.queries'); $this->out()->out(sprintf('Restore success, %s queries executed.', $queries)); return; }