define('STYLE_SUCCESS', 32); if (flagIsSet('packages-path')) { define('FLOW_PATH_PACKAGES', getFlagValue('packages-path')); } else { define('FLOW_PATH_PACKAGES', FLOW_PATH_ROOT . 'Packages/'); } if (\Neos\Flow\Core\Migrations\Git::isGitAvailable() === false) { outputLine('No executable git binary found, exiting.'); exit(255); } $migrationsManager = new Manager(); $packageKey = getFlagValue('package-key'); $versionNumber = null; if (flagIsSet('version')) { if (preg_match('/[0-9]{12,14}/', getFlagValue('version'), $matches) !== 1) { outputLine('EXCEPTION: invalid version "%s" specified, please provide the 12 or 14 digit timestamp of the version you want to target.', array(getFlagValue('version')), 0, STYLE_ERROR); exit(255); } $versionNumber = $matches[0]; // see https://jira.neos.io/browse/FLOW-110 if (strlen($versionNumber) === 12) { $versionNumber .= '00'; } } $verbose = flagIsSet('verbose'); if (flagIsSet('status')) { outputLine('Fetching migration status...'); try { $status = $migrationsManager->getStatus($packageKey, $versionNumber); } catch (\Exception $exception) { outputLine('EXCEPTION: %s', array($exception->getMessage()), 0, STYLE_ERROR);
} $migrationsManager = new \TYPO3\Flow\Core\Migrations\Manager(); if (flagIsSet('status')) { $status = $migrationsManager->getStatus(); $output = PHP_EOL . ' == Migration status' . PHP_EOL; foreach ($status as $packageKey => $migrations) { $output .= PHP_EOL . ' == for ' . $packageKey . PHP_EOL; foreach ($migrations as $versionNumber => $migration) { $status = $migration['state'] === \TYPO3\Flow\Core\Migrations\Manager::STATE_MIGRATED ? 'migrated' : 'not migrated'; $output .= ' >> ' . formatVersion($versionNumber) . ' (' . $migration['source'] . ')' . str_repeat(' ', 30 - strlen($status)) . $status . PHP_EOL; } } echo $output; exit(0); } $migrationsManager->migrate(getFlagValue('package-key')); /** * Check if the given flag is in $GLOBALS['argv']. * * @param string $flag * @return boolean */ function flagIsSet($flag) { return in_array('--' . $flag, $GLOBALS['argv']); } /** * Get the value of the given flag from $GLOBALS['argv']. * * @param $flag * @return mixed