From e3e922e3bf2f4d2d18079a1f8cb3ac3da84baf47 Mon Sep 17 00:00:00 2001 From: Dave Mc Nicoll Date: Thu, 23 Feb 2023 09:36:54 -0500 Subject: [PATCH] - Added a cleanup method to the migration process --- bin/migrate.php | 131 ++++++++++++++++++++++++++---------------------- 1 file changed, 70 insertions(+), 61 deletions(-) diff --git a/bin/migrate.php b/bin/migrate.php index db979f7..41fcd30 100755 --- a/bin/migrate.php +++ b/bin/migrate.php @@ -3,7 +3,7 @@ array_shift($argv); -$opt = getopt('c::f:v', [ 'folder:', 'confirm', 'verbose' ]); +$opt = getopt('c::f:v', [ 'folder:', 'confirm', 'verbose', 'clean' ]); if ( ! $opt ) { exit("Bad arguments provided, you must specify a fullpath using the -f or --folder option\n"); @@ -30,70 +30,79 @@ foreach ($iterator as $info) { $content = file_get_contents($info->getPathname()); - foreach(explode(PHP_EOL, $content) as $lineIdx => $line) { - $tline = trim($line); + if ( isset($opt['clean']) ) { + foreach (explode(PHP_EOL, $content) as $lineIdx => $line) { + if ( $pos = strpos($line, '# migrated from: ') ) { + $attr = true; - if ($tline === "/**") { - $opened = true; - } - elseif ($tline === '*/') { - $opened = false; - } - elseif (substr($tline, 0, 1) === '*') { - $annotation = trim(substr($tline, 1)); + $newContent[] = $newLine = substr($line, 0, $pos); - if (strpos($annotation, '@') === 0 ) { - $argpos = strpos($annotation, '('); - - if ($argpos !== false) { - $name = substr($annotation, 1, $argpos - 1); - $args = substr($annotation, $argpos + 1, strrpos($annotation, ')') - $argpos - 1); - - try{ - $array = eval("return [{$args}];"); - - $renderedArgs = []; - - foreach($array as $key => $argument) { - - if ( is_array($argument) ) { - $argument = var_export($argument, true); - } - elseif ( is_bool($argument) ) { - $argument = $argument ? 'true' : 'false'; - } - elseif (! is_numeric($argument) ) { - $argument = "\"$argument\""; - } - - if (is_numeric($key)) { - $renderedArgs[] = $argument; - } - else { - $renderedArgs[] = "$key: $argument"; - } - } - - $renderedArgs = implode(', ', $renderedArgs); - } - catch(\Throwable $e) { - echo sprintf("!!! WARNING : %s in file (%s) line %d ; using previous notation.\n", $e->getMessage(), $info->getPathname(), $lineIdx + 1); - - $renderedArgs = str_replace(' => ', ': ', $args); - } - } - else { - $name = substr($annotation, 1); - $renderedArgs = ""; - } - - $attr[] = $attribute = sprintf("%s#[%s%s]%s", str_repeat(" ", strlen($line) - strlen(ltrim($line)) >= 4 ? 4 : 0), $name, $renderedArgs ? "($renderedArgs)" : "", $renderedArgs ? " # migrated from: $args" : ""); - - $newContent[] = $attribute; + echo sprintf("Changed line '%s' \n", trim($newLine)); + } + else { + $newContent[] = $line; } } - else { - $newContent[] = $line; + + } + else { + foreach (explode(PHP_EOL, $content) as $lineIdx => $line) { + $tline = trim($line); + + if ($tline === "/**") { + $opened = true; + } elseif ($tline === '*/') { + $opened = false; + } elseif (substr($tline, 0, 1) === '*') { + $annotation = trim(substr($tline, 1)); + + if (strpos($annotation, '@') === 0) { + $argpos = strpos($annotation, '('); + + if ($argpos !== false) { + $name = substr($annotation, 1, $argpos - 1); + $args = substr($annotation, $argpos + 1, strrpos($annotation, ')') - $argpos - 1); + + try { + $array = eval("return [{$args}];"); + + $renderedArgs = []; + + foreach ($array as $key => $argument) { + + if (is_array($argument)) { + $argument = var_export($argument, true); + } elseif (is_bool($argument)) { + $argument = $argument ? 'true' : 'false'; + } elseif (!is_numeric($argument)) { + $argument = "\"$argument\""; + } + + if (is_numeric($key)) { + $renderedArgs[] = $argument; + } else { + $renderedArgs[] = "$key: $argument"; + } + } + + $renderedArgs = implode(', ', $renderedArgs); + } catch (\Throwable $e) { + echo sprintf("!!! WARNING : %s in file (%s) line %d ; using previous notation.\n", $e->getMessage(), $info->getPathname(), $lineIdx + 1); + + $renderedArgs = str_replace(' => ', ': ', $args); + } + } else { + $name = substr($annotation, 1); + $renderedArgs = ""; + } + + $attr[] = $attribute = sprintf("%s#[%s%s]%s", str_repeat(" ", strlen($line) - strlen(ltrim($line)) >= 4 ? 4 : 0), $name, $renderedArgs ? "($renderedArgs)" : "", $renderedArgs ? " # migrated from: $args" : ""); + + $newContent[] = $attribute; + } + } else { + $newContent[] = $line; + } } }