1
0
Fork 0

Move name validation out of interact, fixes #9986

pull/9991/head
Jordi Boggiano 2021-06-27 14:37:11 +02:00
parent e87a150f41
commit 420d9bf21d
No known key found for this signature in database
GPG Key ID: 7BBD42C429EC80BC
1 changed files with 6 additions and 6 deletions

View File

@ -95,6 +95,12 @@ EOT
$allowlist = array('name', 'description', 'author', 'type', 'homepage', 'require', 'require-dev', 'stability', 'license', 'autoload'); $allowlist = array('name', 'description', 'author', 'type', 'homepage', 'require', 'require-dev', 'stability', 'license', 'autoload');
$options = array_filter(array_intersect_key($input->getOptions(), array_flip($allowlist))); $options = array_filter(array_intersect_key($input->getOptions(), array_flip($allowlist)));
if (isset($options['name']) && !preg_match('{^[a-z0-9_.-]+/[a-z0-9_.-]+$}D', $options['name'])) {
throw new \InvalidArgumentException(
'The package name '.$options['name'].' is invalid, it should be lowercase and have a vendor name, a forward slash, and a package name, matching: [a-z0-9_.-]+/[a-z0-9_.-]+'
);
}
if (isset($options['author'])) { if (isset($options['author'])) {
$options['authors'] = $this->formatAuthors($options['author']); $options['authors'] = $this->formatAuthors($options['author']);
unset($options['author']); unset($options['author']);
@ -273,12 +279,6 @@ EOT
$name .= '/' . $name; $name .= '/' . $name;
} }
$name = strtolower($name); $name = strtolower($name);
} else {
if (!preg_match('{^[a-z0-9_.-]+/[a-z0-9_.-]+$}D', $name)) {
throw new \InvalidArgumentException(
'The package name '.$name.' is invalid, it should be lowercase and have a vendor name, a forward slash, and a package name, matching: [a-z0-9_.-]+/[a-z0-9_.-]+'
);
}
} }
$name = $io->askAndValidate( $name = $io->askAndValidate(