continue;
    }
    if (!in_array($repo_order, $order)) {
        $order[] = $repo_order;
    } else {
        $errors[] = "Repository *{$repo_data['id']}* has a duplicated display_order ({$repo_order})";
    }
}
// Check if display_order values are not sequential
sort($order);
for ($i = 0; $i < count($order) - 1; $i++) {
    if ($order[$i] + 1 != $order[$i + 1]) {
        $errors[] = "display_order value is not sequential ({$order[$i + 1]})";
    }
}
// Check files
$repositories_json = $repos->getRepositoriesJson();
foreach ($repositories_json as $repo_data) {
    $file_name = $source_path . $repo_data['locales'];
    if (!file_exists($file_name)) {
        $errors[] = "Repository *{$repo_data['id']}* references a missing file ({$repo_data['locales']})";
    }
}
if (!empty($errors)) {
    echo Utils::colorizeOutput('Detected errors during source integrity checks: ' . count($errors), 'red');
    echo implode("\n", $errors);
    echo "\n";
    exit(1);
} else {
    echo Utils::colorizeOutput('All sources look OK.', 'green');
}