Skip to content

Commit 760e8e3

Browse files
authored
[console] Avoid duplicated --root values. (hechoendrupal#30)
1 parent 95562ae commit 760e8e3

1 file changed

Lines changed: 23 additions & 13 deletions

File tree

src/Utils/ArgvInputReader.php

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -68,23 +68,33 @@ public function setOptionsFromConfiguration($options)
6868
*/
6969
private function setArgvOptions($options)
7070
{
71+
$argvInput = new ArgvInput();
7172
foreach ($options as $key => $option) {
72-
if ($option == 1) {
73-
$_SERVER['argv'][] = sprintf('--%s', $key);
73+
if (!$option) {
7474
continue;
7575
}
76-
if (!empty($option)) {
77-
if ($key = 'root') {
78-
foreach ($_SERVER['argv'] as $argvKey => $argv) {
79-
if (strpos($argv, '--'.$key) === 0) {
80-
$argvValue = str_replace('--'.$key.'=', '', $argv);
81-
$_SERVER['argv'][$argvKey] = sprintf('--%s=%s%s', $key, $argvValue, $option);
82-
} else {
83-
$_SERVER['argv'][] = sprintf('--%s=%s', $key, $option);
84-
}
76+
77+
if (!$argvInput->hasParameterOption($key)){
78+
if ($option == 1) {
79+
$_SERVER['argv'][] = sprintf('--%s', $key);
80+
}
81+
$_SERVER['argv'][] = sprintf('--%s=%s', $key, $option);
82+
continue;
83+
}
84+
if ($key === 'root') {
85+
$option = sprintf(
86+
'%s%s',
87+
$argvInput->getParameterOption(['--root'], null),
88+
$option
89+
);
90+
}
91+
foreach ($_SERVER['argv'] as $argvKey => $argv) {
92+
if (strpos($argv, '--'.$key) === 0) {
93+
if ($option == 1) {
94+
$_SERVER['argv'][$argvKey] = sprintf('--%s', $key);
8595
}
86-
} else {
87-
$_SERVER['argv'][] = sprintf('--%s=%s', $key, $option);
96+
$_SERVER['argv'][$argvKey] = sprintf('--%s=%s', $key, $option);
97+
continue;
8898
}
8999
}
90100
}

0 commit comments

Comments
 (0)