aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/command
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-06-14 11:24:36 +0900
committernsfisis <nsfisis@gmail.com>2026-06-14 11:28:19 +0900
commit716f44031a39c5e43fb441ecc470db76efc23dd4 (patch)
treee6f4a31e4bf55a0a8efb06d9dd4844c567e7390f /crates/shirabe/src/command
parentef9118c788c1cbb22ca7721b6a9e40c2bf2fe243 (diff)
downloadphp-shirabe-716f44031a39c5e43fb441ecc470db76efc23dd4.tar.gz
php-shirabe-716f44031a39c5e43fb441ecc470db76efc23dd4.tar.zst
php-shirabe-716f44031a39c5e43fb441ecc470db76efc23dd4.zip
refactor(pcre): drop Result from Preg method return types
The Preg methods panic on PCRE failure (per the file header rationale), so their anyhow::Result wrappers never carried an Err. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src/command')
-rw-r--r--crates/shirabe/src/command/archive_command.rs4
-rw-r--r--crates/shirabe/src/command/bump_command.rs7
-rw-r--r--crates/shirabe/src/command/config_command.rs203
-rw-r--r--crates/shirabe/src/command/create_project_command.rs3
-rw-r--r--crates/shirabe/src/command/diagnose_command.rs1
-rw-r--r--crates/shirabe/src/command/fund_command.rs2
-rw-r--r--crates/shirabe/src/command/global_command.rs4
-rw-r--r--crates/shirabe/src/command/init_command.rs24
-rw-r--r--crates/shirabe/src/command/package_discovery_trait.rs5
-rw-r--r--crates/shirabe/src/command/reinstall_command.rs2
-rw-r--r--crates/shirabe/src/command/remove_command.rs6
-rw-r--r--crates/shirabe/src/command/repository_command.rs3
-rw-r--r--crates/shirabe/src/command/require_command.rs4
-rw-r--r--crates/shirabe/src/command/script_alias_command.rs2
-rw-r--r--crates/shirabe/src/command/show_command.rs10
-rw-r--r--crates/shirabe/src/command/update_command.rs8
16 files changed, 173 insertions, 115 deletions
diff --git a/crates/shirabe/src/command/archive_command.rs b/crates/shirabe/src/command/archive_command.rs
index 71d353e..ee11ae2 100644
--- a/crates/shirabe/src/command/archive_command.rs
+++ b/crates/shirabe/src/command/archive_command.rs
@@ -284,9 +284,7 @@ impl ArchiveCommand {
r"{@(stable|RC|beta|alpha|dev)$}i",
version_str,
Some(&mut matches),
- )
- .unwrap_or(false)
- {
+ ) {
let m1 = matches
.get(&CaptureKey::ByIndex(1))
.cloned()
diff --git a/crates/shirabe/src/command/bump_command.rs b/crates/shirabe/src/command/bump_command.rs
index 6f947c2..56548a9 100644
--- a/crates/shirabe/src/command/bump_command.rs
+++ b/crates/shirabe/src/command/bump_command.rs
@@ -222,10 +222,7 @@ impl BumpCommand {
let packages_filter = if !packages_filter.is_empty() {
let packages_filter: Vec<String> = packages_filter
.iter()
- .map(|constraint| {
- Preg::replace(r"{[:= ].+}", "", constraint)
- .unwrap_or_else(|_| constraint.clone())
- })
+ .map(|constraint| Preg::replace(r"{[:= ].+}", "", constraint))
.collect();
let mut unique_lower: Vec<String> = packages_filter
.iter()
@@ -235,7 +232,7 @@ impl BumpCommand {
.collect();
let pattern = base_package::package_names_to_regexp(&unique_lower, "{^(?:%s)$}iD");
for (key, reqs) in tasks.iter_mut() {
- reqs.retain(|pkg_name, _| Preg::is_match(&pattern, pkg_name).unwrap_or(false));
+ reqs.retain(|pkg_name, _| Preg::is_match(&pattern, pkg_name));
}
packages_filter
} else {
diff --git a/crates/shirabe/src/command/config_command.rs b/crates/shirabe/src/command/config_command.rs
index e55b92e..522a9e9 100644
--- a/crates/shirabe/src/command/config_command.rs
+++ b/crates/shirabe/src/command/config_command.rs
@@ -346,9 +346,7 @@ impl ConfigCommand {
"/^repos?(?:itories)?(?:\\.(.+))?/",
&setting_key,
Some(&mut matches),
- )
- .unwrap_or(false)
- {
+ ) {
if matches.get(&CaptureKey::ByIndex(1)).is_none() {
value = data
.get("repositories")
@@ -594,9 +592,7 @@ impl ConfigCommand {
"/^preferred-install\\.(.+)/",
&setting_key,
Some(&mut matches),
- )
- .unwrap_or(false)
- {
+ ) {
if input.borrow().get_option("unset")?.as_bool() == Some(true) {
self.config_source
.as_mut()
@@ -635,9 +631,7 @@ impl ConfigCommand {
"{^allow-plugins\\.([a-zA-Z0-9/*-]+)}",
&setting_key,
Some(&mut matches),
- )
- .unwrap_or(false)
- {
+ ) {
if input.borrow().get_option("unset")?.as_bool() == Some(true) {
self.config_source
.as_mut()
@@ -707,9 +701,7 @@ impl ConfigCommand {
"/^repos?(?:itories)?\\.(.+)/",
&setting_key,
Some(&mut matches),
- )
- .unwrap_or(false)
- {
+ ) {
if input.borrow().get_option("unset")?.as_bool() == Some(true) {
self.config_source
.as_mut()
@@ -774,7 +766,7 @@ impl ConfigCommand {
// handle extra
let mut matches: IndexMap<CaptureKey, String> = IndexMap::new();
- if Preg::is_match3("/^extra\\.(.+)/", &setting_key, Some(&mut matches)).unwrap_or(false) {
+ if Preg::is_match3("/^extra\\.(.+)/", &setting_key, Some(&mut matches)) {
if input.borrow().get_option("unset")?.as_bool() == Some(true) {
self.config_source
.as_mut()
@@ -833,7 +825,7 @@ impl ConfigCommand {
// handle suggest
let mut matches: IndexMap<CaptureKey, String> = IndexMap::new();
- if Preg::is_match3("/^suggest\\.(.+)/", &setting_key, Some(&mut matches)).unwrap_or(false) {
+ if Preg::is_match3("/^suggest\\.(.+)/", &setting_key, Some(&mut matches)) {
if input.borrow().get_option("unset")?.as_bool() == Some(true) {
self.config_source
.as_mut()
@@ -868,8 +860,7 @@ impl ConfigCommand {
// handle platform
let mut matches: IndexMap<CaptureKey, String> = IndexMap::new();
- if Preg::is_match3("/^platform\\.(.+)/", &setting_key, Some(&mut matches)).unwrap_or(false)
- {
+ if Preg::is_match3("/^platform\\.(.+)/", &setting_key, Some(&mut matches)) {
if input.borrow().get_option("unset")?.as_bool() == Some(true) {
self.config_source
.as_mut()
@@ -991,10 +982,20 @@ impl ConfigCommand {
// handle auth
let mut matches: IndexMap<CaptureKey, String> = IndexMap::new();
- if Preg::is_match3("/^(bitbucket-oauth|github-oauth|gitlab-oauth|gitlab-token|http-basic|custom-headers|bearer|forgejo-token)\\.(.+)/", &setting_key, Some(&mut matches)).unwrap_or(false) {
+ if Preg::is_match3(
+ "/^(bitbucket-oauth|github-oauth|gitlab-oauth|gitlab-token|http-basic|custom-headers|bearer|forgejo-token)\\.(.+)/",
+ &setting_key,
+ Some(&mut matches),
+ ) {
if input.borrow().get_option("unset")?.as_bool() == Some(true) {
- self.auth_config_source.as_mut().unwrap().remove_config_setting(&format!("{}.{}", matches[1], matches[2]));
- self.config_source.as_mut().unwrap().remove_config_setting(&format!("{}.{}", matches[1], matches[2]));
+ self.auth_config_source
+ .as_mut()
+ .unwrap()
+ .remove_config_setting(&format!("{}.{}", matches[1], matches[2]));
+ self.config_source
+ .as_mut()
+ .unwrap()
+ .remove_config_setting(&format!("{}.{}", matches[1], matches[2]));
return Ok(0);
}
@@ -1003,23 +1004,60 @@ impl ConfigCommand {
if matches[1] == "bitbucket-oauth" {
if 2 != values.len() {
return Err(RuntimeException {
- message: format!("Expected two arguments (consumer-key, consumer-secret), got {}", values.len()),
+ message: format!(
+ "Expected two arguments (consumer-key, consumer-secret), got {}",
+ values.len()
+ ),
code: 0,
}
.into());
}
- self.config_source.as_mut().unwrap().remove_config_setting(&key);
+ self.config_source
+ .as_mut()
+ .unwrap()
+ .remove_config_setting(&key);
let mut obj: IndexMap<String, Box<PhpMixed>> = IndexMap::new();
- obj.insert("consumer-key".to_string(), Box::new(PhpMixed::String(values[0].clone())));
- obj.insert("consumer-secret".to_string(), Box::new(PhpMixed::String(values[1].clone())));
- self.auth_config_source.as_mut().unwrap().add_config_setting(&key, PhpMixed::Array(obj));
+ obj.insert(
+ "consumer-key".to_string(),
+ Box::new(PhpMixed::String(values[0].clone())),
+ );
+ obj.insert(
+ "consumer-secret".to_string(),
+ Box::new(PhpMixed::String(values[1].clone())),
+ );
+ self.auth_config_source
+ .as_mut()
+ .unwrap()
+ .add_config_setting(&key, PhpMixed::Array(obj));
} else if matches[1] == "gitlab-token" && 2 == values.len() {
- self.config_source.as_mut().unwrap().remove_config_setting(&key);
+ self.config_source
+ .as_mut()
+ .unwrap()
+ .remove_config_setting(&key);
let mut obj: IndexMap<String, Box<PhpMixed>> = IndexMap::new();
- obj.insert("username".to_string(), Box::new(PhpMixed::String(values[0].clone())));
- obj.insert("token".to_string(), Box::new(PhpMixed::String(values[1].clone())));
- self.auth_config_source.as_mut().unwrap().add_config_setting(&key, PhpMixed::Array(obj));
- } else if in_array(matches[1].as_str().into(), &vec!["github-oauth".to_string(), "gitlab-oauth".to_string(), "gitlab-token".to_string(), "bearer".to_string()].into(), true) {
+ obj.insert(
+ "username".to_string(),
+ Box::new(PhpMixed::String(values[0].clone())),
+ );
+ obj.insert(
+ "token".to_string(),
+ Box::new(PhpMixed::String(values[1].clone())),
+ );
+ self.auth_config_source
+ .as_mut()
+ .unwrap()
+ .add_config_setting(&key, PhpMixed::Array(obj));
+ } else if in_array(
+ matches[1].as_str().into(),
+ &vec![
+ "github-oauth".to_string(),
+ "gitlab-oauth".to_string(),
+ "gitlab-token".to_string(),
+ "bearer".to_string(),
+ ]
+ .into(),
+ true,
+ ) {
if 1 != values.len() {
return Err(RuntimeException {
message: "Too many arguments, expected only one token".to_string(),
@@ -1027,21 +1065,42 @@ impl ConfigCommand {
}
.into());
}
- self.config_source.as_mut().unwrap().remove_config_setting(&key);
- self.auth_config_source.as_mut().unwrap().add_config_setting(&key, PhpMixed::String(values[0].clone()));
+ self.config_source
+ .as_mut()
+ .unwrap()
+ .remove_config_setting(&key);
+ self.auth_config_source
+ .as_mut()
+ .unwrap()
+ .add_config_setting(&key, PhpMixed::String(values[0].clone()));
} else if matches[1] == "http-basic" {
if 2 != values.len() {
return Err(RuntimeException {
- message: format!("Expected two arguments (username, password), got {}", values.len()),
+ message: format!(
+ "Expected two arguments (username, password), got {}",
+ values.len()
+ ),
code: 0,
}
.into());
}
- self.config_source.as_mut().unwrap().remove_config_setting(&key);
+ self.config_source
+ .as_mut()
+ .unwrap()
+ .remove_config_setting(&key);
let mut obj: IndexMap<String, Box<PhpMixed>> = IndexMap::new();
- obj.insert("username".to_string(), Box::new(PhpMixed::String(values[0].clone())));
- obj.insert("password".to_string(), Box::new(PhpMixed::String(values[1].clone())));
- self.auth_config_source.as_mut().unwrap().add_config_setting(&key, PhpMixed::Array(obj));
+ obj.insert(
+ "username".to_string(),
+ Box::new(PhpMixed::String(values[0].clone())),
+ );
+ obj.insert(
+ "password".to_string(),
+ Box::new(PhpMixed::String(values[1].clone())),
+ );
+ self.auth_config_source
+ .as_mut()
+ .unwrap()
+ .add_config_setting(&key, PhpMixed::Array(obj));
} else if matches[1] == "custom-headers" {
if values.len() == 0 {
return Err(RuntimeException {
@@ -1056,7 +1115,9 @@ impl ConfigCommand {
for header in &values {
if !is_string(&PhpMixed::String(header.clone())) {
return Err(RuntimeException {
- message: "Headers must be strings in \"Header-Name: Header-Value\" format".to_string(),
+ message:
+ "Headers must be strings in \"Header-Name: Header-Value\" format"
+ .to_string(),
code: 0,
}
.into());
@@ -1064,9 +1125,12 @@ impl ConfigCommand {
// Check if the header is in correct "Name: Value" format
let mut header_parts: IndexMap<CaptureKey, String> = IndexMap::new();
- if !Preg::is_match3("/^[^:]+:\\s*.+$/", header, Some(&mut header_parts)).unwrap_or(false) {
+ if !Preg::is_match3("/^[^:]+:\\s*.+$/", header, Some(&mut header_parts)) {
return Err(RuntimeException {
- message: format!("Header \"{}\" is not in \"Header-Name: Header-Value\" format", header),
+ message: format!(
+ "Header \"{}\" is not in \"Header-Name: Header-Value\" format",
+ header
+ ),
code: 0,
}
.into());
@@ -1075,21 +1139,42 @@ impl ConfigCommand {
formatted_headers.push(Box::new(PhpMixed::String(header.clone())));
}
- self.config_source.as_mut().unwrap().remove_config_setting(&key);
- self.auth_config_source.as_mut().unwrap().add_config_setting(&key, PhpMixed::List(formatted_headers));
+ self.config_source
+ .as_mut()
+ .unwrap()
+ .remove_config_setting(&key);
+ self.auth_config_source
+ .as_mut()
+ .unwrap()
+ .add_config_setting(&key, PhpMixed::List(formatted_headers));
} else if matches[1] == "forgejo-token" {
if 2 != values.len() {
return Err(RuntimeException {
- message: format!("Expected two arguments (username, access token), got {}", values.len()),
+ message: format!(
+ "Expected two arguments (username, access token), got {}",
+ values.len()
+ ),
code: 0,
}
.into());
}
- self.config_source.as_mut().unwrap().remove_config_setting(&key);
+ self.config_source
+ .as_mut()
+ .unwrap()
+ .remove_config_setting(&key);
let mut obj: IndexMap<String, Box<PhpMixed>> = IndexMap::new();
- obj.insert("username".to_string(), Box::new(PhpMixed::String(values[0].clone())));
- obj.insert("token".to_string(), Box::new(PhpMixed::String(values[1].clone())));
- self.auth_config_source.as_mut().unwrap().add_config_setting(&key, PhpMixed::Array(obj));
+ obj.insert(
+ "username".to_string(),
+ Box::new(PhpMixed::String(values[0].clone())),
+ );
+ obj.insert(
+ "token".to_string(),
+ Box::new(PhpMixed::String(values[1].clone())),
+ );
+ self.auth_config_source
+ .as_mut()
+ .unwrap()
+ .add_config_setting(&key, PhpMixed::Array(obj));
}
return Ok(0);
@@ -1097,7 +1182,7 @@ impl ConfigCommand {
// handle script
let mut matches: IndexMap<CaptureKey, String> = IndexMap::new();
- if Preg::is_match3("/^scripts\\.(.+)/", &setting_key, Some(&mut matches)).unwrap_or(false) {
+ if Preg::is_match3("/^scripts\\.(.+)/", &setting_key, Some(&mut matches)) {
if input.borrow().get_option("unset")?.as_bool() == Some(true) {
self.config_source
.as_mut()
@@ -1293,9 +1378,7 @@ impl ConfigCommand {
|| (key == "repositories" && k.is_none()))
{
let mut new_k = k.clone().unwrap_or_default();
- new_k.push_str(
- &Preg::replace("{^config\\.}", "", &format!("{}.", key)).unwrap_or_default(),
- );
+ new_k.push_str(&Preg::replace("{^config\\.}", "", &format!("{}.", key)));
k = Some(new_k);
self.list_configuration(
value_inner,
@@ -1353,14 +1436,13 @@ impl ConfigCommand {
} else {
k.clone().unwrap()
};
- let id = Preg::replace("{\\..*$}", "", &id_source).unwrap_or_default();
+ let id = Preg::replace("{\\..*$}", "", &id_source);
let id = Preg::replace(
"{[^a-z0-9]}i",
"-",
&strtolower(&shirabe_php_shim::trim(&id, Some(" \t\n\r\0\u{0B}"))),
- )
- .unwrap_or_default();
- let id = Preg::replace("{-+}", "-", &id).unwrap_or_default();
+ );
+ let id = Preg::replace("{-+}", "-", &id);
link = format!("https://getcomposer.org/doc/06-config.md#{}", id);
}
if is_string(&raw_val)
@@ -1594,14 +1676,11 @@ fn build_unique_config_values() -> IndexMap<String, (ValidatorFn, NormalizerFn)>
"cache-files-maxsize".to_string(),
(
Box::new(|val| {
- PhpMixed::Bool(
- Preg::is_match3(
- "/^\\s*([0-9.]+)\\s*(?:([kmg])(?:i?b)?)?\\s*$/i",
- val.as_string().unwrap_or(""),
- None,
- )
- .unwrap_or(false),
- )
+ PhpMixed::Bool(Preg::is_match3(
+ "/^\\s*([0-9.]+)\\s*(?:([kmg])(?:i?b)?)?\\s*$/i",
+ val.as_string().unwrap_or(""),
+ None,
+ ))
}),
Box::new(|val| val.clone()),
),
diff --git a/crates/shirabe/src/command/create_project_command.rs b/crates/shirabe/src/command/create_project_command.rs
index aa4245d..5579a87 100644
--- a/crates/shirabe/src/command/create_project_command.rs
+++ b/crates/shirabe/src/command/create_project_command.rs
@@ -705,8 +705,7 @@ impl CreateProjectCommand {
),
package_version.as_deref().unwrap_or(""),
Some(&mut matched),
- )
- .unwrap_or(false);
+ );
if ok {
stability = Some(
matched
diff --git a/crates/shirabe/src/command/diagnose_command.rs b/crates/shirabe/src/command/diagnose_command.rs
index 6c37459..56dffc1 100644
--- a/crates/shirabe/src/command/diagnose_command.rs
+++ b/crates/shirabe/src/command/diagnose_command.rs
@@ -1183,7 +1183,6 @@ impl DiagnoseCommand {
phpinfo_str.as_ref().unwrap(),
Some(&mut phpinfo_match),
)
- .unwrap_or(false)
{
let configure = phpinfo_match
.get(&CaptureKey::ByIndex(1))
diff --git a/crates/shirabe/src/command/fund_command.rs b/crates/shirabe/src/command/fund_command.rs
index 6223def..8bfae47 100644
--- a/crates/shirabe/src/command/fund_command.rs
+++ b/crates/shirabe/src/command/fund_command.rs
@@ -191,7 +191,7 @@ impl FundCommand {
.and_then(|v| v.as_string())
.unwrap_or("");
if r#type == "github" {
- if let Ok(Some(matches)) =
+ if let Some(matches) =
Preg::is_match_with_indexed_captures(r"^https://github.com/([^/]+)$", &url)
{
if let Some(sponsor) = matches.into_iter().nth(1) {
diff --git a/crates/shirabe/src/command/global_command.rs b/crates/shirabe/src/command/global_command.rs
index e978dff..0184772 100644
--- a/crates/shirabe/src/command/global_command.rs
+++ b/crates/shirabe/src/command/global_command.rs
@@ -86,7 +86,7 @@ impl GlobalCommand {
input: std::rc::Rc<std::cell::RefCell<dyn InputInterface>>,
output: std::rc::Rc<std::cell::RefCell<dyn OutputInterface>>,
) -> Result<i64> {
- let tokens = Preg::split(r"{\s+}", &Self::input_to_string(&*input.borrow())?)?;
+ let tokens = Preg::split(r"{\s+}", &Self::input_to_string(&*input.borrow())?);
let mut args: Vec<String> = vec![];
for token in &tokens {
if !token.is_empty() && !token.starts_with('-') {
@@ -150,7 +150,7 @@ impl GlobalCommand {
"",
&Self::input_to_string(&*input.borrow())?,
1,
- )?;
+ );
self.get_application()?.reset_composer();
Ok(StringInput::new(&new_input_str)?)
diff --git a/crates/shirabe/src/command/init_command.rs b/crates/shirabe/src/command/init_command.rs
index d7af222..b41492d 100644
--- a/crates/shirabe/src/command/init_command.rs
+++ b/crates/shirabe/src/command/init_command.rs
@@ -154,7 +154,6 @@ impl InitCommand {
.and_then(|v| v.as_string())
.unwrap_or(""),
)
- .unwrap_or(false)
{
return Err(InvalidArgumentException {
message: format!(
@@ -576,9 +575,7 @@ impl InitCommand {
if !Preg::is_match(
r"{^[a-z0-9]([_.-]?[a-z0-9]+)*\/[a-z0-9](([_.]|-{1,2})?[a-z0-9]+)*$}D",
value.as_string().unwrap_or(""),
- )
- .unwrap_or(false)
- {
+ ) {
return Err(InvalidArgumentException {
message: format!(
"The package 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_.-]+",
@@ -903,7 +900,7 @@ impl InitCommand {
value_str
};
- if !Preg::is_match(r"{^[^/][A-Za-z0-9\-_/]+/$}", &value_or_default).unwrap_or(false)
+ if !Preg::is_match(r"{^[^/][A-Za-z0-9\-_/]+/$}", &value_or_default)
{
return Err(InvalidArgumentException {
message: format!(
@@ -932,9 +929,7 @@ impl InitCommand {
r#"/^(?P<name>[- .,\p{L}\p{N}\p{Mn}\'’\"()]+)(?:\s+<(?P<email>.+?)>)?$/u"#,
author,
Some(&mut m),
- )
- .unwrap_or(false)
- {
+ ) {
let email = m.get(&CaptureKey::ByName("email".to_string())).cloned();
if let Some(ref email) = email {
if !self.is_valid_email(email) {
@@ -995,7 +990,7 @@ impl InitCommand {
let namespace: Vec<String> = array_map(
|part: &String| {
- let part = Preg::replace(r"/[^a-z0-9]/i", " ", &part).unwrap_or_default();
+ let part = Preg::replace(r"/[^a-z0-9]/i", " ", &part);
let part = ucwords(&part);
str_replace(" ", "", &part)
},
@@ -1022,7 +1017,7 @@ impl InitCommand {
{
self.git_config = Some(IndexMap::new());
let mut m: IndexMap<CaptureKey, Vec<String>> = IndexMap::new();
- if Preg::is_match_all3(r"{^([^=]+)=(.*)$}m", &output, Some(&mut m)).unwrap_or(false) {
+ if Preg::is_match_all3(r"{^([^=]+)=(.*)$}m", &output, Some(&mut m)) {
let keys: Vec<String> = m.get(&CaptureKey::ByIndex(1)).cloned().unwrap_or_default();
let values: Vec<String> =
m.get(&CaptureKey::ByIndex(2)).cloned().unwrap_or_default();
@@ -1062,7 +1057,7 @@ impl InitCommand {
let lines = file(ignore_file, FILE_IGNORE_NEW_LINES).unwrap_or_default();
for line in &lines {
- if Preg::is_match(&pattern, line).unwrap_or(false) {
+ if Preg::is_match(&pattern, line) {
return true;
}
}
@@ -1159,11 +1154,10 @@ impl InitCommand {
r"{(?:([a-z])([A-Z])|([A-Z])([A-Z][a-z]))}",
"$1$3-$2$4",
name,
- )
- .unwrap_or_default();
+ );
let name = strtolower(&name);
- let name = Preg::replace(r"{^[_.-]+|[_.-]+$|[^a-z0-9_.-]}u", "", &name).unwrap_or_default();
- let name = Preg::replace(r"{([_.-]){2,}}u", "$1", &name).unwrap_or_default();
+ let name = Preg::replace(r"{^[_.-]+|[_.-]+$|[^a-z0-9_.-]}u", "", &name);
+ let name = Preg::replace(r"{([_.-]){2,}}u", "$1", &name);
name
}
diff --git a/crates/shirabe/src/command/package_discovery_trait.rs b/crates/shirabe/src/command/package_discovery_trait.rs
index 917a716..c48b4d5 100644
--- a/crates/shirabe/src/command/package_discovery_trait.rs
+++ b/crates/shirabe/src/command/package_discovery_trait.rs
@@ -175,7 +175,6 @@ pub trait PackageDiscoveryTrait {
r"{^\d+(\.\d+)?$}",
requirement.get("version").map(|s| s.as_str()).unwrap_or(""),
)
- .unwrap_or(false)
{
io.write_error3(
&format!(
@@ -379,9 +378,7 @@ pub trait PackageDiscoveryTrait {
r"{^\s*(?P<name>[\S/]+)(?:\s+(?P<version>\S+))?\s*$}",
&selection,
Some(&mut m),
- )
- .unwrap_or(false)
- {
+ ) {
if let Some(v) =
m.get(&CaptureKey::ByName("version".to_string())).cloned()
{
diff --git a/crates/shirabe/src/command/reinstall_command.rs b/crates/shirabe/src/command/reinstall_command.rs
index 48f48a5..5053492 100644
--- a/crates/shirabe/src/command/reinstall_command.rs
+++ b/crates/shirabe/src/command/reinstall_command.rs
@@ -124,7 +124,7 @@ impl ReinstallCommand {
let pattern_regexp = base_package::package_name_to_regexp(pattern);
let mut matched = false;
for package in local_repo.get_canonical_packages()? {
- if Preg::is_match(&pattern_regexp, &package.get_name()).unwrap_or(false) {
+ if Preg::is_match(&pattern_regexp, &package.get_name()) {
matched = true;
package_names_to_reinstall.push(package.get_name());
packages_to_reinstall.push(package);
diff --git a/crates/shirabe/src/command/remove_command.rs b/crates/shirabe/src/command/remove_command.rs
index b81b7ca..75f1dcb 100644
--- a/crates/shirabe/src/command/remove_command.rs
+++ b/crates/shirabe/src/command/remove_command.rs
@@ -383,8 +383,7 @@ impl RemoveCommand {
let matches_in_type = Preg::grep(
&base_package::package_name_to_regexp(package),
&type_keys_refs,
- )
- .unwrap_or_default();
+ );
let alt_type_keys: Vec<String> = composer_data
.as_array()
@@ -397,8 +396,7 @@ impl RemoveCommand {
let matches_in_alt_type = Preg::grep(
&base_package::package_name_to_regexp(package),
&alt_type_keys_refs,
- )
- .unwrap_or_default();
+ );
if !type_keys.is_empty() && !matches_in_type.is_empty() {
for matched_package in &matches_in_type {
diff --git a/crates/shirabe/src/command/repository_command.rs b/crates/shirabe/src/command/repository_command.rs
index 3e0292a..417266f 100644
--- a/crates/shirabe/src/command/repository_command.rs
+++ b/crates/shirabe/src/command/repository_command.rs
@@ -133,8 +133,7 @@ impl RepositoryCommand {
}));
}
let arg1_str = arg1.as_deref().unwrap();
- let repo_config: PhpMixed = if Preg::is_match(r"^\s*\{", arg1_str).unwrap_or(false)
- {
+ let repo_config: PhpMixed = if Preg::is_match(r"^\s*\{", arg1_str) {
JsonFile::parse_json(Some(arg1_str), None)?
} else {
if arg2.is_none() {
diff --git a/crates/shirabe/src/command/require_command.rs b/crates/shirabe/src/command/require_command.rs
index 9e47a02..e1cbba4 100644
--- a/crates/shirabe/src/command/require_command.rs
+++ b/crates/shirabe/src/command/require_command.rs
@@ -1099,9 +1099,7 @@ impl RequireCommand {
.get(package_name)
.map(|s| s.as_str())
.unwrap_or(""),
- )
- .unwrap_or(false)
- {
+ ) {
self.get_io().warning(
&format!(
"Version {} looks like it may be a feature branch which is unlikely to keep working in the long run and may be in an unstable state",
diff --git a/crates/shirabe/src/command/script_alias_command.rs b/crates/shirabe/src/command/script_alias_command.rs
index 29c38cf..95c80fb 100644
--- a/crates/shirabe/src/command/script_alias_command.rs
+++ b/crates/shirabe/src/command/script_alias_command.rs
@@ -130,7 +130,7 @@ impl ScriptAliasCommand {
// TODO(phase-c): InputInterface lacks to_string; use a placeholder until it is modeled.
let input_as_string = String::new();
let _ = input;
- let script_alias_input = Preg::replace4(r"{^\S+ ?}", "", &input_as_string, 1)?;
+ let script_alias_input = Preg::replace4(r"{^\S+ ?}", "", &input_as_string, 1);
let mut flags = indexmap::IndexMap::new();
flags.insert(
"script-alias-input".to_string(),
diff --git a/crates/shirabe/src/command/show_command.rs b/crates/shirabe/src/command/show_command.rs
index 27bda55..05b6b3e 100644
--- a/crates/shirabe/src/command/show_command.rs
+++ b/crates/shirabe/src/command/show_command.rs
@@ -801,7 +801,7 @@ impl ShowCommand {
}
let matches_filter = match &package_filter_regex {
None => true,
- Some(r) => Preg::is_match(r, &p.get_name())?,
+ Some(r) => Preg::is_match(r, &p.get_name()),
};
if matches_filter {
let matches_list = match &package_list_filter {
@@ -882,7 +882,7 @@ impl ShowCommand {
if show_latest && *show_version {
for package_or_name in type_packages.values() {
if let PackageOrName::Pkg(package) = package_or_name {
- if !Preg::is_match(&ignored_packages_regex, &package.get_pretty_name())?
+ if !Preg::is_match(&ignored_packages_regex, &package.get_pretty_name())
{
let latest = self.find_latest_package(
package.clone(),
@@ -954,7 +954,7 @@ impl ShowCommand {
package_is_up_to_date =
package_is_up_to_date || (latest_package.is_none() && show_major_only);
let package_is_ignored =
- Preg::is_match(&ignored_packages_regex, &package.get_pretty_name())?;
+ Preg::is_match(&ignored_packages_regex, &package.get_pretty_name());
if input.borrow().get_option("outdated")?.as_bool() == Some(true)
&& (package_is_up_to_date || package_is_ignored)
{
@@ -2689,7 +2689,7 @@ impl ShowCommand {
r"{^(?P<zero_major>(?:0\.)+)?(?P<first_meaningful>\d+)\.}",
&package.get_version(),
Some(&mut groups),
- )?
+ )
{
let zero_major = groups
.get(&CaptureKey::ByName("zero_major".to_string()))
@@ -2713,7 +2713,7 @@ impl ShowCommand {
}
if patch_only {
- let trimmed_version = Preg::replace(r"{(\.0)+$}D", "", &package.get_version())?;
+ let trimmed_version = Preg::replace(r"{(\.0)+$}D", "", &package.get_version());
let parts_needed = if trimmed_version.starts_with('0') {
4
} else {
diff --git a/crates/shirabe/src/command/update_command.rs b/crates/shirabe/src/command/update_command.rs
index 6f604d5..26b05f5 100644
--- a/crates/shirabe/src/command/update_command.rs
+++ b/crates/shirabe/src/command/update_command.rs
@@ -136,7 +136,7 @@ impl UpdateCommand {
if packages.len() > 0 {
let allowlist_packages_with_requirements: Vec<String> =
array_filter(&packages, |pkg: &String| -> bool {
- Preg::is_match(r"{\S+[ =:]\S+}", pkg).unwrap_or(false)
+ Preg::is_match(r"{\S+[ =:]\S+}", pkg)
});
for (package, constraint) in
self.format_requirements(allowlist_packages_with_requirements.clone())?
@@ -146,7 +146,7 @@ impl UpdateCommand {
// replace the foo/bar:req by foo/bar in the allowlist
for package in &allowlist_packages_with_requirements {
- let package_name = Preg::replace(r"{^([^ =:]+)[ =:].*$}", "$1", package)?;
+ let package_name = Preg::replace(r"{^([^ =:]+)[ =:].*$}", "$1", package);
if let Some(idx) = array_search_in_vec(package, &packages) {
packages[idx] = package_name;
}
@@ -220,7 +220,7 @@ impl UpdateCommand {
let matches = Preg::is_match_with_indexed_captures(
r"{^(\d+\.\d+\.\d+)}",
&package.get_version(),
- )?;
+ );
let Some(matches) = matches else {
continue;
};
@@ -575,7 +575,7 @@ impl UpdateCommand {
let mut version_selector = self.create_version_selector(composer)?;
for package in &installed_packages {
if let Some(filter) = &filter {
- if !Preg::is_match(filter, &package.get_name()).unwrap_or(false) {
+ if !Preg::is_match(filter, &package.get_name()) {
continue;
}
}