/**
     * @param array $conditions
     * @return ApplicationObject[]
     */
    public static function fetchApplicationList ( $conditions = array() )
    {
        if( is_null(self::$_applicationList ) )
        {
            $appIds = parent::fetchObjectList(ApplicationObject::definition(), null, $conditions, null, null, false );
            $apps   = array();

            foreach( $appIds as $appId )
            {
                $appLocalized = CacheApplicationTool::buildLocalizedApplicationByApplication($appId['id']);

                if ( $appLocalized instanceof ApplicationLocalized && $appLocalized->applicationObject instanceof ApplicationObject )
                    $apps[] = $appLocalized->applicationObject;
            }
            self::$_applicationList = $apps;
        }

        return self::$_applicationList;
    }
$db = MMDB::instance();

$countryCode = $options['country-code'];
$clusterIdentifier = $options['cluster-identifier'];
$appId = $options['appid'];
$dryRun = (isset( $options["dry-run"] )) ? true : false;

$clusterMapping = eZINI::instance( 'merck.ini' )->variable('ClusterSettings', 'CountryMapping');
if (!array_key_exists($countryCode, $clusterMapping))
{
    $cli->error('No cluster mapping is defined in merck.ini for country-code ' . $countryCode);
    $script->shutdown(1);
}
$clusterIdentifier = $clusterMapping[$countryCode];

$application = ApplicationObject::fetchObject(ApplicationObject::definition(), null, array('id' => $appId));
if ($application == null || $application instanceof ApplicationObject == false)
{
    $cli->error("Application with id {$appId} doesn't exist.");
    $script->shutdown(1);
}
$applicationIdentifier = $application->identifier;

$questionCli = new QuestionInteractiveCli();
$replies = array(
    'N' => 'N',
    'Y' => 'Y'
);
$response = $questionCli->askQuestion( "Are you sure you want to remove application {$application->identifier} for country {$countryCode}", $replies);
if ($response == 'N')
{
$varDir = eZSys::varDirectory();
$newStaticDir = StaticData::directory();

$fileUtils = eZClusterFileHandler::instance( $path );
if( $fileUtils->requiresClusterizing() ) {
    $dfsBackend = new eZDFSFileHandlerDFSBackend();
    $mountPoint = $dfsBackend->getMountPoint();
    $varDir = eZDir::path(array($mountPoint, $varDir));
    $newStaticDir = eZDir::path(array($mountPoint, $newStaticDir));
}

$clusterList = ClusterTool::globCluster();
$oldStaticDir = eZDir::path(array($varDir, 'static-data'));

$applicationList = array();
$rows = ApplicationObject::fetchObjectList(ApplicationObject::definition(), array('identifier'), null, null, null, false);
foreach ($rows as $row) {
    $applicationList[] = $row['identifier'];
}
$applicationList = array_unique($applicationList);

$fileToRemove = array();

function moveIfNeeded($oldPath, $newPath) {
    global $fileToRemove;
    
    $success = true;
    $cli = eZCLI::instance();
    
    if (!file_exists($newPath)) {
        if (!file_exists($oldPath)) {