$archive_path = $arguments['i']; } $security = new XML_Security(); $xml_validator = new XML_RNGValidator(); $user_manager = UserManager::instance(); $logger = new ProjectXMLImporterLogger(); $transformer = new User\XML\Import\MappingFileOptimusPrimeTransformer($user_manager); $console = new Log_ConsoleLogger(); $builder = new User\XML\Import\UsersToBeImportedCollectionBuilder($user_manager, $logger, $security, $xml_validator); try { $user = $user_manager->forceLogin($username); if (!$user->isActive() || !$user->isSuperUser()) { throw new RuntimeException("User {$username} must be site administrator"); } if (is_dir($archive_path)) { $archive = new Import\DirectoryArchive($archive_path); } else { $archive = new Import\ZipArchive($archive_path, ForgeConfig::get('tmp_dir')); } $collection_from_archive = $builder->buildFromArchive($archive); $transformer->transform($collection_from_archive, $mapping_path); $console->info('Everything is awesome! ♪♫'); exit(0); } catch (XML_ParseException $exception) { foreach ($exception->getErrors() as $parse_error) { $console->error($parse_error); } } catch (Exception $exception) { $console->error($exception->getMessage()); } exit(1);
$consoleLogger->error('Unsufficient privileges for user ' . $sys_user); return false; } function usage() { $consoleLogger = new Log_ConsoleLogger(); $consoleLogger->error("Usage: export.php groupId targetname"); } if (!isset($argv[2])) { $consoleLogger->error("No target directory specified"); usage(); return false; } if (is_file($argv[2])) { $consoleLogger->error("Target directoy already exists"); return false; } $start = microtime(true); try { $logger = new BackendLogger(); $XMLExport = new XMLExport($logger); $XMLExport->setGroupId($argv[1]); $XMLExport->setArchiveName($argv[2]); $XMLExport->dumpPackage(); } catch (Exception $exception) { $consoleLogger->error("Export failed : " . $exception->getMessage()); return false; } $end = microtime(true); $consoleLogger->info("Elapsed time: " . ($end - $start));