diff options
Diffstat (limited to 'crates/shirabe/src/package')
| -rw-r--r-- | crates/shirabe/src/package/loader/root_package_loader.rs | 17 | ||||
| -rw-r--r-- | crates/shirabe/src/package/locker.rs | 28 | ||||
| -rw-r--r-- | crates/shirabe/src/package/version/version_bumper.rs | 6 | ||||
| -rw-r--r-- | crates/shirabe/src/package/version/version_guesser.rs | 67 |
4 files changed, 48 insertions, 70 deletions
diff --git a/crates/shirabe/src/package/loader/root_package_loader.rs b/crates/shirabe/src/package/loader/root_package_loader.rs index bbcf294f..b7216c62 100644 --- a/crates/shirabe/src/package/loader/root_package_loader.rs +++ b/crates/shirabe/src/package/loader/root_package_loader.rs @@ -15,7 +15,7 @@ use crate::repository::RepositoryManager; use crate::util::Platform; use crate::util::ProcessExecutor; use indexmap::IndexMap; -use shirabe_pcre::{CaptureKey, Preg, PregMatchedGroups}; +use shirabe_pcre::{CaptureKey, Preg}; use shirabe_php_shim::{ PhpMixed, RuntimeException, UnexpectedValueException, php_regex, preg_split, strtolower, }; @@ -252,11 +252,9 @@ impl RootPackageLoader { mut aliases: Vec<IndexMap<String, String>>, ) -> Vec<IndexMap<String, String>> { for (req_name, req_version) in requires { - let mut m = PregMatchedGroups::new(); - if Preg::is_match3( + if let Some(m) = Preg::is_match3( php_regex!(r"{(?:^|\| *|, *)([^,\s#|]+)(?:#[^ ]+)? +as +([^,\s|]+)(?:$| *\|| *,)}"), req_version, - Some(&mut m), ) { let m1 = m.get(&CaptureKey::ByIndex(1)).cloned().unwrap_or_default(); let m2 = m.get(&CaptureKey::ByIndex(2)).cloned().unwrap_or_default(); @@ -318,8 +316,7 @@ impl RootPackageLoader { let mut matched = false; for constraint in &constraints { - let mut m = PregMatchedGroups::new(); - if Preg::is_match3(&pattern, constraint, Some(&mut m)) { + if let Some(m) = Preg::is_match3(&pattern, constraint) { let name = strtolower(req_name); let m1 = m.get(&CaptureKey::ByIndex(1)).cloned().unwrap_or_default(); let normalized_m1 = VersionParser::normalize_stability(&m1).unwrap_or_default(); @@ -365,12 +362,8 @@ impl RootPackageLoader { ) -> IndexMap<String, String> { for (req_name, req_version) in requires { let req_version = Preg::replace(php_regex!(r"{^([^,\s@]+) as .+$}"), "$1", req_version); - let mut m = PregMatchedGroups::new(); - if Preg::is_match3( - php_regex!(r"{^[^,\s@]+?#([a-f0-9]+)$}"), - &req_version, - Some(&mut m), - ) && VersionParser::parse_stability(&req_version) == "dev" + if let Some(m) = Preg::is_match3(php_regex!(r"{^[^,\s@]+?#([a-f0-9]+)$}"), &req_version) + && VersionParser::parse_stability(&req_version) == "dev" { let name = strtolower(req_name); references.insert( diff --git a/crates/shirabe/src/package/locker.rs b/crates/shirabe/src/package/locker.rs index 5c99b967..6e7145ae 100644 --- a/crates/shirabe/src/package/locker.rs +++ b/crates/shirabe/src/package/locker.rs @@ -24,7 +24,7 @@ use crate::repository::RootPackageRepository; use crate::util::Git as GitUtil; use crate::util::ProcessExecutor; use indexmap::IndexMap; -use shirabe_pcre::{CaptureKey, Preg, PregMatchedGroups}; +use shirabe_pcre::{CaptureKey, Preg}; use shirabe_php_shim::Catch as _; use shirabe_php_shim::{ DATE_RFC3339, LogicException, PhpMixed, RuntimeException, array_intersect, array_keys, @@ -843,21 +843,17 @@ impl Locker { ]), &mut output, path.as_deref(), - )? { - let mut m = PregMatchedGroups::new(); - if Preg::is_match3( - php_regex!(r"{^\s*(\d+)\s*}"), - output.as_string().unwrap_or(""), - Some(&mut m), - ) { - let ts = m - .get(&CaptureKey::ByIndex(1)) - .cloned() - .unwrap_or_default() - .parse::<i64>() - .unwrap_or(0); - datetime = chrono::DateTime::from_timestamp(ts, 0); - } + )? && let Some(m) = Preg::is_match3( + php_regex!(r"{^\s*(\d+)\s*}"), + output.as_string().unwrap_or(""), + ) { + let ts = m + .get(&CaptureKey::ByIndex(1)) + .cloned() + .unwrap_or_default() + .parse::<i64>() + .unwrap_or(0); + datetime = chrono::DateTime::from_timestamp(ts, 0); } } _ => {} diff --git a/crates/shirabe/src/package/version/version_bumper.rs b/crates/shirabe/src/package/version/version_bumper.rs index dbeff6a0..6911fb14 100644 --- a/crates/shirabe/src/package/version/version_bumper.rs +++ b/crates/shirabe/src/package/version/version_bumper.rs @@ -5,7 +5,7 @@ use crate::package::dumper::ArrayDumper; use crate::package::loader::ArrayLoader; use crate::package::version::VersionParser; use crate::util::Platform; -use shirabe_pcre::{CaptureKey, Preg, PregMatchesAllWithOffsets}; +use shirabe_pcre::{CaptureKey, Preg}; use shirabe_php_shim::php_regex; use shirabe_semver::Intervals; use shirabe_semver::constraint::AnyConstraint; @@ -77,8 +77,8 @@ impl VersionBumper { major = major ); - let mut matches = PregMatchesAllWithOffsets::new(); - if Preg::is_match_all_with_offsets3(&pattern, &pretty_constraint, Some(&mut matches)) { + let matches = Preg::is_match_all_with_offsets3(&pattern, &pretty_constraint); + if matches.occurrence_count() > 0 { let mut modified = pretty_constraint.clone(); let constraint_matches = matches .get(&CaptureKey::ByName("constraint".to_string())) diff --git a/crates/shirabe/src/package/version/version_guesser.rs b/crates/shirabe/src/package/version/version_guesser.rs index 4b5187f2..14fcf5f6 100644 --- a/crates/shirabe/src/package/version/version_guesser.rs +++ b/crates/shirabe/src/package/version/version_guesser.rs @@ -12,7 +12,7 @@ use crate::util::ProcessExecutor; use crate::util::Svn as SvnUtil; use crate::util::sync_executor; use indexmap::IndexMap; -use shirabe_pcre::{CaptureKey, Preg, PregMatchedGroups}; +use shirabe_pcre::{CaptureKey, Preg}; use shirabe_php_shim::{ PhpMixed, RuntimeException, array_keys, array_map, array_merge, empty, function_exists, implode, is_string, json_encode, php_regex, preg_quote, str_replace, strlen, strnatcasecmp, @@ -228,49 +228,43 @@ impl VersionGuesser { // find current branch and collect all branch names for branch in self.process.borrow().split_lines(&output) { - if !branch.is_empty() { - let mut m = PregMatchedGroups::new(); - if Preg::is_match3( + if !branch.is_empty() + && let Some(m) = Preg::is_match3( php_regex!( r"{^(?:\* ) *(\(no branch\)|\(detached from \S+\)|\(HEAD detached at \S+\)|\S+) *([a-f0-9]+) .*$}" ), &branch, - Some(&mut m), - ) { - let g1 = m.get(&CaptureKey::ByIndex(1)).cloned().unwrap_or_default(); - let g2 = m.get(&CaptureKey::ByIndex(2)).cloned().unwrap_or_default(); - if g1 == "(no branch)" - || strpos(&g1, "(detached ") == Some(0) - || strpos(&g1, "(HEAD detached at") == Some(0) - { - version = Some(format!("dev-{}", g2)); - pretty_version = version.clone(); - is_feature_branch = true; - is_detached = true; - } else { - version = Some(self.version_parser.normalize_branch(&g1)?); - pretty_version = Some(format!("dev-{}", g1)); - is_feature_branch = self.is_feature_branch(package_config, Some(&g1)); - } - - commit = Some(g2); + ) + { + let g1 = m.get(&CaptureKey::ByIndex(1)).cloned().unwrap_or_default(); + let g2 = m.get(&CaptureKey::ByIndex(2)).cloned().unwrap_or_default(); + if g1 == "(no branch)" + || strpos(&g1, "(detached ") == Some(0) + || strpos(&g1, "(HEAD detached at") == Some(0) + { + version = Some(format!("dev-{}", g2)); + pretty_version = version.clone(); + is_feature_branch = true; + is_detached = true; + } else { + version = Some(self.version_parser.normalize_branch(&g1)?); + pretty_version = Some(format!("dev-{}", g1)); + is_feature_branch = self.is_feature_branch(package_config, Some(&g1)); } + + commit = Some(g2); } - if !branch.is_empty() && { - let mut tmp = PregMatchedGroups::new(); - !Preg::is_match3(php_regex!(r"{^ *.+/HEAD }"), &branch, Some(&mut tmp)) - } { - let mut m = PregMatchedGroups::new(); - if Preg::is_match3( + if !branch.is_empty() + && Preg::is_match3(php_regex!(r"{^ *.+/HEAD }"), &branch).is_none() + && let Some(m) = Preg::is_match3( php_regex!( r"{^(?:\* )? *((?:remotes/(?:origin|upstream)/)?[^\s/]+) *([a-f0-9]+) .*$}" ), &branch, - Some(&mut m), - ) { - branches.push(m.get(&CaptureKey::ByIndex(1)).cloned().unwrap_or_default()); - } + ) + { + branches.push(m.get(&CaptureKey::ByIndex(1)).cloned().unwrap_or_default()); } } @@ -756,12 +750,7 @@ impl VersionGuesser { .into()); } }; - let mut m = PregMatchedGroups::new(); - if Preg::is_match3( - php_regex!(r"{^(\d+(?:\.\d+)*)-dev$}i"), - &version, - Some(&mut m), - ) { + if let Some(m) = Preg::is_match3(php_regex!(r"{^(\d+(?:\.\d+)*)-dev$}i"), &version) { return Ok(format!( "{}.x-dev", m.get(&CaptureKey::ByIndex(1)).cloned().unwrap_or_default() |
