Example #1
0
$context = $addon->callHook('context');
require dirname(__FILE__) . "/../system/dbconnection.class.php";
require dirname(__FILE__) . "/../system/feature.class.php";
$dbc = new DBConnection();
$dbh = $dbc->connect();
$work_dir = $addon->callHook('babel_working');
$work_context_dir = $work_dir . $context . "_feature/";
$tmp_dir = $work_context_dir . "tmp/";
$output_dir = $work_context_dir . "output/";
$features_dir = $work_context_dir . "features/";
exec("rm -rf {$work_context_dir}*");
exec("mkdir -p {$output_dir}");
exec("mkdir -p {$features_dir}");
//iterate over all the release trains
foreach (ReleaseTrain::all() as $train) {
    // create a dedicated folder for each of them
    exec("mkdir -p {$features_dir}/{$train->id}");
    // create the output folder for temporary artifacts
    $output_dir_for_train = "{$output_dir}/{$train->id}/";
    // iterate over each language
    foreach (Language::all() as $lang) {
        // create a new feature object
        $feature = new Feature($lang, $train, $tmp_dir, $output_dir_for_train);
        // make it generate itself
        $feature->generateAll();
        // now zip it directly
        $featureZip = $feature->zip("{$features_dir}/{$train->id}");
        // output the creation of the feature notification
        echo "Feature created here: {$featureZip}\n";
    }
}