-
Notifications
You must be signed in to change notification settings - Fork 0
/
migrate.php
67 lines (56 loc) · 2.55 KB
/
migrate.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
if (empty($argv[1])) {
echo "Error: No se proporcionó un directorio." . PHP_EOL;
return;
}
searchAndReplacePatterns($argv[1]);
function searchAndReplacePatterns($directory) {
// Expresiones regulares y sus reemplazos
$patterns = [
'/([mp])l(-[0-5])/' => '$1s$2',
'/([mp])r(-[0-5])/' => '$1e$2',
'/no-gutters/' => 'g-0',
'/"close"/' => '"btn-close"',
'/left(-[0-9]*)/' => 'start$1',
'/right(-[0-9]*)/' => 'end$1',
'/(float|border|rounded|text)-left/' => '$1-start',
'/(float|border|rounded|text)-right/' => '$1-end',
'/font-weight(-[a-zA-Z]*)/' => 'fw$1',
'/font-style(-[a-zA-Z]*)/' => 'fst$1',
'/form-row/' => 'row',
'/data-toggle/' => 'data-bs-toggle',
'/data-target/' => 'data-bs-target',
'/data-dismiss/' => 'data-bs-dismiss',
'/badge(-[a-zA-Z]*)/' => 'bg$1',
'/form-group/' => 'mb-3',
'/<span class="input-group-append">\s*(.*?)\s*<\/span>/ms' => '$1',
'/<div class="input-group-append">\s*(.*?)\s*<\/div>/ms' => '$1',
'/<span class="input-group-prepend">\s*(.*?)\s*<\/span>/ms' => '$1',
'/<div class="input-group-prepend">\s*(.*?)\s*<\/div>/ms' => '$1',
'/\)\.modal\(\)/' => ').modal(\\\'show\\\')',
'/(<select\b[^>]*\b)(form-control\s)([^>]*>)/' => '$1form-select $3',
'/(<select\b[^>]*\b)(\bform-control\b)([^>]*>)/' => '$1form-select$3',
'/\s*<span\s+aria-hidden="true">\×<\/span>\s*/' => '',
'/class="alert/' => 'class="alert alert-dismissible',
'/(text-.*-)(left)/' => '$1start',
'/(text-.*-)(right)/' => '$1end',
];
// Extensiones permitidas
$allowedExtensions = ['php', 'twig', 'js'];
// Crear un iterador recursivo para recorrer los archivos
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($directory));
foreach ($iterator as $file) {
// Obtenemos la extensión del archivo
$extension = pathinfo($file, PATHINFO_EXTENSION);
// Verificar si el archivo tiene una extensión permitida
if (in_array($extension, $allowedExtensions)) {
// Leer el contenido del archivo
$content = file_get_contents($file);
// Reemplazar los patrones encontrados
$updatedContent = preg_replace(array_keys($patterns), array_values($patterns), $content);
// Escribir el nuevo contenido en el archivo
file_put_contents($file, $updatedContent);
}
}
echo "\n\n############# FIN #############\n\n";
}