$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);
Пример #2
0
    $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));