aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/package
diff options
context:
space:
mode:
Diffstat (limited to 'crates/shirabe/src/package')
-rw-r--r--crates/shirabe/src/package/archiver/archivable_files_finder.rs2
-rw-r--r--crates/shirabe/src/package/archiver/archive_manager.rs8
-rw-r--r--crates/shirabe/src/package/archiver/git_exclude_filter.rs3
-rw-r--r--crates/shirabe/src/package/loader/array_loader.rs8
-rw-r--r--crates/shirabe/src/package/loader/root_package_loader.rs22
-rw-r--r--crates/shirabe/src/package/loader/validating_array_loader.rs24
-rw-r--r--crates/shirabe/src/package/locker.rs6
-rw-r--r--crates/shirabe/src/package/package.rs12
-rw-r--r--crates/shirabe/src/package/version/version_bumper.rs8
-rw-r--r--crates/shirabe/src/package/version/version_guesser.rs37
-rw-r--r--crates/shirabe/src/package/version/version_parser.rs12
-rw-r--r--crates/shirabe/src/package/version/version_selector.rs11
12 files changed, 97 insertions, 56 deletions
diff --git a/crates/shirabe/src/package/archiver/archivable_files_finder.rs b/crates/shirabe/src/package/archiver/archivable_files_finder.rs
index 67f2fdaa..ad2b41ab 100644
--- a/crates/shirabe/src/package/archiver/archivable_files_finder.rs
+++ b/crates/shirabe/src/package/archiver/archivable_files_finder.rs
@@ -57,7 +57,7 @@ impl ArchivableFilesFinder {
}
let relative_path = Preg::replace(
- &format!("#^{}#", preg_quote(&sources_clone, Some('#'))),
+ format!("#^{}#", preg_quote(&sources_clone, Some('#'))),
"",
&fs.normalize_path(&realpath.to_string_lossy()),
);
diff --git a/crates/shirabe/src/package/archiver/archive_manager.rs b/crates/shirabe/src/package/archiver/archive_manager.rs
index eaeab9ce..52132be9 100644
--- a/crates/shirabe/src/package/archiver/archive_manager.rs
+++ b/crates/shirabe/src/package/archiver/archive_manager.rs
@@ -12,8 +12,8 @@ use crate::util::r#loop::Loop;
use indexmap::IndexMap;
use shirabe_external_packages::composer::pcre::Preg;
use shirabe_php_shim::{
- InvalidArgumentException, RuntimeException, bin2hex, file_exists, random_bytes, realpath,
- sys_get_temp_dir,
+ InvalidArgumentException, RuntimeException, bin2hex, file_exists, php_regex, random_bytes,
+ realpath, sys_get_temp_dir,
};
pub struct ArchiveManager {
@@ -58,7 +58,7 @@ impl ArchiveManager {
) -> anyhow::Result<IndexMap<String, String>> {
let base_name = match package.get_archive_name() {
Some(name) => name.to_string(),
- None => Preg::replace("#[^a-z0-9-_]#i", "-", &package.get_name()),
+ None => Preg::replace(php_regex!("#[^a-z0-9-_]#i"), "-", &package.get_name()),
};
let mut parts: IndexMap<String, String> = IndexMap::new();
@@ -66,7 +66,7 @@ impl ArchiveManager {
let dist_reference = package.get_dist_reference();
if let Some(ref dist_ref) = dist_reference {
- if Preg::is_match("{^[a-f0-9]{40}$}", dist_ref) {
+ if Preg::is_match(php_regex!("{^[a-f0-9]{40}$}"), dist_ref) {
parts.insert("dist_reference".to_string(), dist_ref.to_string());
if let Some(dist_type) = package.get_dist_type() {
parts.insert("dist_type".to_string(), dist_type.to_string());
diff --git a/crates/shirabe/src/package/archiver/git_exclude_filter.rs b/crates/shirabe/src/package/archiver/git_exclude_filter.rs
index 8620bddc..85842411 100644
--- a/crates/shirabe/src/package/archiver/git_exclude_filter.rs
+++ b/crates/shirabe/src/package/archiver/git_exclude_filter.rs
@@ -3,6 +3,7 @@
use crate::package::archiver::BaseExcludeFilter;
use crate::package::archiver::BaseExcludeFilterBase;
use shirabe_external_packages::composer::pcre::Preg;
+use shirabe_php_shim::php_regex;
use std::path::Path;
pub struct GitExcludeFilter {
@@ -35,7 +36,7 @@ impl GitExcludeFilter {
}
fn parse_git_attributes_line_static(line: &str) -> Option<(String, bool, bool)> {
- let parts = Preg::split(r"#\s+#", line);
+ let parts = Preg::split(php_regex!(r"#\s+#"), line);
if parts.len() == 2 && parts[1] == "export-ignore" {
return Some(BaseExcludeFilterBase::generate_pattern(&parts[0]));
diff --git a/crates/shirabe/src/package/loader/array_loader.rs b/crates/shirabe/src/package/loader/array_loader.rs
index b85fbe61..07937c31 100644
--- a/crates/shirabe/src/package/loader/array_loader.rs
+++ b/crates/shirabe/src/package/loader/array_loader.rs
@@ -20,7 +20,7 @@ use indexmap::IndexMap;
use shirabe_external_packages::composer::pcre::Preg;
use shirabe_php_shim::{
E_USER_DEPRECATED, PhpMixed, UnexpectedValueException, is_scalar, is_string, json_encode,
- ltrim, stripos, strpos, strtolower, strval, substr, trigger_error, trim,
+ ltrim, php_regex, stripos, strpos, strtolower, strval, substr, trigger_error, trim,
};
#[derive(Debug)]
@@ -504,7 +504,7 @@ impl ArrayLoader {
&& !shirabe_php_shim::empty(time_value)
{
let time_str = time_value.as_string().unwrap_or("");
- let time = if Preg::is_match(r"/^\d++$/D", time_str) {
+ let time = if Preg::is_match(php_regex!(r"/^\d++$/D"), time_str) {
format!("@{}", time_str)
} else {
time_str.to_string()
@@ -674,7 +674,7 @@ impl ArrayLoader {
if let Some(alias_normalized) = alias_normalized
&& !alias_normalized.is_empty()
{
- let pretty_alias = Preg::replace(r"{(\.9{7})+}", ".x", &alias_normalized);
+ let pretty_alias = Preg::replace(php_regex!(r"{(\.9{7})+}"), ".x", &alias_normalized);
return Ok(match package {
CompleteOrRootPackage::Root(root) => RootAliasPackageHandle::new(
@@ -938,7 +938,7 @@ impl ArrayLoader {
&& default_branch_is_true
&& self
.version_parser
- .parse_numeric_alias_prefix(&Preg::replace(r"{^v}", "", &version_str))
+ .parse_numeric_alias_prefix(&Preg::replace(php_regex!(r"{^v}"), "", &version_str))
.is_none()
{
return Ok(Some(VersionParser::DEFAULT_BRANCH_ALIAS.to_string()));
diff --git a/crates/shirabe/src/package/loader/root_package_loader.rs b/crates/shirabe/src/package/loader/root_package_loader.rs
index 83cda30b..b3ed8c41 100644
--- a/crates/shirabe/src/package/loader/root_package_loader.rs
+++ b/crates/shirabe/src/package/loader/root_package_loader.rs
@@ -16,7 +16,9 @@ use crate::util::Platform;
use crate::util::ProcessExecutor;
use indexmap::IndexMap;
use shirabe_external_packages::composer::pcre::{CaptureKey, Preg};
-use shirabe_php_shim::{PhpMixed, RuntimeException, UnexpectedValueException, strtolower};
+use shirabe_php_shim::{
+ PhpMixed, RuntimeException, UnexpectedValueException, php_regex, strtolower,
+};
#[derive(Debug)]
pub struct RootPackageLoader {
@@ -261,7 +263,7 @@ impl RootPackageLoader {
for (req_name, req_version) in requires {
let mut m: IndexMap<CaptureKey, String> = IndexMap::new();
if Preg::is_match3(
- r"{(?:^|\| *|, *)([^,\s#|]+)(?:#[^ ]+)? +as +([^,\s|]+)(?:$| *\|| *,)}",
+ php_regex!(r"{(?:^|\| *|, *)([^,\s#|]+)(?:#[^ ]+)? +as +([^,\s|]+)(?:$| *\|| *,)}"),
req_version,
Some(&mut m),
) {
@@ -315,7 +317,7 @@ impl RootPackageLoader {
for (req_name, req_version) in requires {
let mut constraints: Vec<String> = vec![];
- let or_split = Preg::split(r"{\s*\|\|?\s*}", req_version.trim());
+ let or_split = Preg::split(php_regex!(r"{\s*\|\|?\s*}"), req_version.trim());
for or_constraint in &or_split {
let and_split = shirabe_semver::split_and_constraints(or_constraint);
for and_constraint in and_split {
@@ -348,8 +350,9 @@ impl RootPackageLoader {
}
for constraint in &constraints {
- let req_version_stripped = Preg::replace(r"{^([^,\s@]+) as .+$}", "$1", constraint);
- if Preg::is_match(r"{^[^,\s@]+$}", &req_version_stripped) {
+ let req_version_stripped =
+ Preg::replace(php_regex!(r"{^([^,\s@]+) as .+$}"), "$1", constraint);
+ if Preg::is_match(php_regex!(r"{^[^,\s@]+$}"), &req_version_stripped) {
let stability_name = VersionParser::parse_stability(&req_version_stripped);
if stability_name != "stable" {
let name = strtolower(req_name);
@@ -373,10 +376,13 @@ impl RootPackageLoader {
mut references: IndexMap<String, String>,
) -> IndexMap<String, String> {
for (req_name, req_version) in requires {
- let req_version = Preg::replace(r"{^([^,\s@]+) as .+$}", "$1", req_version);
+ let req_version = Preg::replace(php_regex!(r"{^([^,\s@]+) as .+$}"), "$1", req_version);
let mut m: IndexMap<CaptureKey, String> = IndexMap::new();
- if Preg::is_match3(r"{^[^,\s@]+?#([a-f0-9]+)$}", &req_version, Some(&mut m))
- && VersionParser::parse_stability(&req_version) == "dev"
+ if Preg::is_match3(
+ php_regex!(r"{^[^,\s@]+?#([a-f0-9]+)$}"),
+ &req_version,
+ Some(&mut m),
+ ) && VersionParser::parse_stability(&req_version) == "dev"
{
let name = strtolower(req_name);
references.insert(
diff --git a/crates/shirabe/src/package/loader/validating_array_loader.rs b/crates/shirabe/src/package/loader/validating_array_loader.rs
index 4d7965f8..28ae7d9b 100644
--- a/crates/shirabe/src/package/loader/validating_array_loader.rs
+++ b/crates/shirabe/src/package/loader/validating_array_loader.rs
@@ -11,8 +11,8 @@ use shirabe_external_packages::composer::pcre::Preg;
use shirabe_php_shim::{
E_USER_DEPRECATED, PHP_EOL, PhpMixed, array_intersect_key, array_values, filter_var_email,
get_debug_type, is_array, is_bool, is_int, is_numeric, is_scalar, is_string, json_encode,
- parse_url_all, php_to_string, str_replace, strcasecmp, strtolower, strtotime, substr,
- trigger_error, trim, var_export,
+ parse_url_all, php_regex, php_to_string, str_replace, strcasecmp, strtolower, strtotime,
+ substr, trigger_error, trim, var_export,
};
use shirabe_semver::Intervals;
use shirabe_semver::constraint::AnyConstraint;
@@ -910,7 +910,7 @@ impl LoaderInterface for ValidatingArrayLoader {
self.warnings
.borrow_mut()
.push(format!("{}.{}", link_type, err));
- } else if !Preg::is_match("{^[A-Za-z0-9_./-]+$}", &package) {
+ } else if !Preg::is_match(php_regex!("{^[A-Za-z0-9_./-]+$}"), &package) {
self.errors.borrow_mut().push(format!(
"{}.{} : invalid key, package names must be strings containing only [A-Za-z0-9_./-]",
link_type, package
@@ -1173,7 +1173,7 @@ impl LoaderInterface for ValidatingArrayLoader {
}
if let Some(ref_val) = section.get("reference").filter(|_| isset("reference")) {
let ref_str = php_to_string(ref_val);
- if Preg::is_match("{^\\s*-}", &ref_str) {
+ if Preg::is_match(php_regex!("{^\\s*-}"), &ref_str) {
self.errors.borrow_mut().push(format!(
"{}.reference : must not start with a \"-\", \"{}\" given",
src_type, ref_str
@@ -1182,7 +1182,7 @@ impl LoaderInterface for ValidatingArrayLoader {
}
if let Some(url_val) = section.get("url").filter(|_| isset("url")) {
let url_str = php_to_string(url_val);
- if Preg::is_match("{^\\s*-}", &url_str) {
+ if Preg::is_match(php_regex!("{^\\s*-}"), &url_str) {
self.errors.borrow_mut().push(format!(
"{}.url : must not start with a \"-\", \"{}\" given",
src_type, url_str
@@ -1336,7 +1336,9 @@ impl ValidatingArrayLoader {
}
if !Preg::is_match(
- "{^[a-z0-9](?:[_.-]?[a-z0-9]++)*+/[a-z0-9](?:(?:[_.]|-{1,2})?[a-z0-9]++)*+$}iD",
+ php_regex!(
+ "{^[a-z0-9](?:[_.-]?[a-z0-9]++)*+/[a-z0-9](?:(?:[_.]|-{1,2})?[a-z0-9]++)*+$}iD"
+ ),
name,
) {
return Some(format!(
@@ -1359,14 +1361,14 @@ impl ValidatingArrayLoader {
));
}
- if Preg::is_match("{\\.json$}", name) {
+ if Preg::is_match(php_regex!("{\\.json$}"), name) {
return Some(format!(
"{} is invalid, package names can not end in .json, consider renaming it or perhaps using a -json suffix instead.",
name
));
}
- if Preg::is_match("{[A-Z]}", name) {
+ if Preg::is_match(php_regex!("{[A-Z]}"), name) {
if is_link {
return Some(format!(
"{} is invalid, it should not contain uppercase characters. Please use {} instead.",
@@ -1376,7 +1378,7 @@ impl ValidatingArrayLoader {
}
let suggest_name = Preg::replace(
- "{(?:([a-z])([A-Z])|([A-Z])([A-Z][a-z]))}",
+ php_regex!("{(?:([a-z])([A-Z])|([A-Z])([A-Z][a-z]))}"),
"\\1\\3-\\2\\4",
name,
);
@@ -1400,7 +1402,7 @@ impl ValidatingArrayLoader {
.as_string()
.unwrap_or("")
.to_string();
- if !Preg::is_match(&format!("{{^{}$}}u", regex), &value) {
+ if !Preg::is_match(format!("{{^{}$}}u", regex), &value) {
let message = format!(
"{} : invalid value ({}), must match {}",
property, value, regex
@@ -1513,7 +1515,7 @@ impl ValidatingArrayLoader {
if let Some(regex_str) = regex {
let value_str = php_to_string(&value);
- if !Preg::is_match(&format!("{{^{}$}}u", regex_str), &value_str) {
+ if !Preg::is_match(format!("{{^{}$}}u", regex_str), &value_str) {
self.warnings.borrow_mut().push(format!(
"{}.{} : invalid value ({}), must match {}",
property, key, value_str, regex_str
diff --git a/crates/shirabe/src/package/locker.rs b/crates/shirabe/src/package/locker.rs
index 94f46254..f7542d1f 100644
--- a/crates/shirabe/src/package/locker.rs
+++ b/crates/shirabe/src/package/locker.rs
@@ -29,7 +29,7 @@ use shirabe_external_packages::seld::json_lint::ParsingException;
use shirabe_php_shim::{
DATE_RFC3339, LogicException, PhpMixed, RuntimeException, array_intersect, array_keys,
array_map, array_merge, file_get_contents, filemtime, function_exists, hash, in_array, is_int,
- ksort, realpath, strcmp, strtolower, touch2, trim, usort,
+ ksort, php_regex, realpath, strcmp, strtolower, touch2, trim, usort,
};
/// Reads/writes project lockfile (composer.lock).
@@ -849,7 +849,7 @@ impl Locker {
),
None,
);
- if Preg::is_match(r"{^\s*\d+\s*$}", &output_str) {
+ if Preg::is_match(php_regex!(r"{^\s*\d+\s*$}"), &output_str) {
let ts = trim(&output_str, None).parse::<i64>().unwrap_or(0);
datetime = chrono::DateTime::from_timestamp(ts, 0);
}
@@ -871,7 +871,7 @@ impl Locker {
)? {
let mut m: IndexMap<CaptureKey, String> = IndexMap::new();
if Preg::is_match3(
- r"{^\s*(\d+)\s*}",
+ php_regex!(r"{^\s*(\d+)\s*}"),
output.as_string().unwrap_or(""),
Some(&mut m),
) {
diff --git a/crates/shirabe/src/package/package.rs b/crates/shirabe/src/package/package.rs
index ce22b755..e0bee0e6 100644
--- a/crates/shirabe/src/package/package.rs
+++ b/crates/shirabe/src/package/package.rs
@@ -11,7 +11,9 @@ use crate::util::ComposerMirror;
use chrono::{DateTime, Utc};
use indexmap::{IndexMap, IndexSet};
use shirabe_external_packages::composer::pcre::Preg;
-use shirabe_php_shim::{E_USER_DEPRECATED, LogicException, PhpMixed, strpos, trigger_error};
+use shirabe_php_shim::{
+ E_USER_DEPRECATED, LogicException, PhpMixed, php_regex, strpos, trigger_error,
+};
/// Mirror entry, e.g. `['url' => 'https://...', 'preferred' => true]`.
#[derive(Debug, Clone)]
@@ -138,7 +140,7 @@ impl Package {
let target_dir = self.target_dir.as_ref()?;
let replaced = Preg::replace(
- "{ (?:^|[\\\\/]+) \\.\\.? (?:[\\\\/]+|$) (?:\\.\\.? (?:[\\\\/]+|$) )*}x",
+ php_regex!("{ (?:^|[\\\\/]+) \\.\\.? (?:[\\\\/]+|$) (?:\\.\\.? (?:[\\\\/]+|$) )*}x"),
"/",
target_dir,
);
@@ -415,13 +417,15 @@ impl Package {
// TODO generalize this a bit for self-managed/on-prem versions? Some kind of replace token in dist urls which allow this?
if self.get_dist_url().is_some()
&& Preg::is_match(
- "{^https?://(?:(?:www\\.)?bitbucket\\.org|(api\\.)?github\\.com|(?:www\\.)?gitlab\\.com)/}i",
+ php_regex!(
+ "{^https?://(?:(?:www\\.)?bitbucket\\.org|(api\\.)?github\\.com|(?:www\\.)?gitlab\\.com)/}i"
+ ),
&self.get_dist_url().unwrap_or_default(),
)
{
self.set_dist_reference(Some(reference.clone()));
self.set_dist_url(Some(Preg::replace(
- "{(?<=/|sha=)[a-f0-9]{40}(?=/|$)}i",
+ php_regex!("{(?<=/|sha=)[a-f0-9]{40}(?=/|$)}i"),
&reference,
&self.get_dist_url().unwrap_or_default(),
)));
diff --git a/crates/shirabe/src/package/version/version_bumper.rs b/crates/shirabe/src/package/version/version_bumper.rs
index 4f2d3242..e1f58942 100644
--- a/crates/shirabe/src/package/version/version_bumper.rs
+++ b/crates/shirabe/src/package/version/version_bumper.rs
@@ -7,6 +7,7 @@ use crate::package::version::VersionParser;
use crate::util::Platform;
use indexmap::IndexMap;
use shirabe_external_packages::composer::pcre::{CaptureKey, Preg};
+use shirabe_php_shim::php_regex;
use shirabe_semver::Intervals;
use shirabe_semver::constraint::AnyConstraint;
@@ -45,11 +46,12 @@ impl VersionBumper {
return Ok(pretty_constraint);
}
- let major = Preg::replace(r"{^([1-9][0-9]*|0\.\d+).*}", "$1", &version);
- let version_without_suffix = Preg::replace(r"{(?:\.(?:0|9999999))+(-dev)?$}", "", &version);
+ let major = Preg::replace(php_regex!(r"{^([1-9][0-9]*|0\.\d+).*}"), "$1", &version);
+ let version_without_suffix =
+ Preg::replace(php_regex!(r"{(?:\.(?:0|9999999))+(-dev)?$}"), "", &version);
let new_pretty_constraint = format!("^{}", version_without_suffix);
- if !Preg::is_match(r"{^\^\d+(\.\d+)*$}", &new_pretty_constraint) {
+ if !Preg::is_match(php_regex!(r"{^\^\d+(\.\d+)*$}"), &new_pretty_constraint) {
return Ok(pretty_constraint);
}
diff --git a/crates/shirabe/src/package/version/version_guesser.rs b/crates/shirabe/src/package/version/version_guesser.rs
index 249646c4..add59ead 100644
--- a/crates/shirabe/src/package/version/version_guesser.rs
+++ b/crates/shirabe/src/package/version/version_guesser.rs
@@ -15,7 +15,7 @@ use indexmap::IndexMap;
use shirabe_external_packages::composer::pcre::{CaptureKey, Preg};
use shirabe_php_shim::{
PHP_INT_MAX, PhpMixed, RuntimeException, array_keys, array_map, array_merge, empty,
- function_exists, implode, is_string, json_encode, preg_quote, str_replace, strlen,
+ function_exists, implode, is_string, json_encode, php_regex, preg_quote, str_replace, strlen,
strnatcasecmp, strpos, substr, trim, usort,
};
@@ -163,10 +163,13 @@ impl VersionGuesser {
}
if "-dev" == substr(version_data.version.as_deref().unwrap_or(""), -4, None)
- && Preg::is_match(r"{\.9{7}}", version_data.version.as_deref().unwrap_or(""))
+ && Preg::is_match(
+ php_regex!(r"{\.9{7}}"),
+ version_data.version.as_deref().unwrap_or(""),
+ )
{
version_data.pretty_version = Some(Preg::replace(
- r"{(\.9{7})+}",
+ php_regex!(r"{(\.9{7})+}"),
".x",
version_data.version.as_deref().unwrap_or(""),
));
@@ -185,12 +188,12 @@ impl VersionGuesser {
None,
)
&& Preg::is_match(
- r"{\.9{7}}",
+ php_regex!(r"{\.9{7}}"),
version_data.feature_version.as_deref().unwrap_or(""),
)
{
version_data.feature_pretty_version = Some(Preg::replace(
- r"{(\.9{7})+}",
+ php_regex!(r"{(\.9{7})+}"),
".x",
version_data.feature_version.as_deref().unwrap_or(""),
));
@@ -237,7 +240,9 @@ impl VersionGuesser {
if !branch.is_empty() {
let mut m: IndexMap<CaptureKey, String> = IndexMap::new();
if Preg::is_match3(
- r"{^(?:\* ) *(\(no branch\)|\(detached from \S+\)|\(HEAD detached at \S+\)|\S+) *([a-f0-9]+) .*$}",
+ php_regex!(
+ r"{^(?:\* ) *(\(no branch\)|\(detached from \S+\)|\(HEAD detached at \S+\)|\S+) *([a-f0-9]+) .*$}"
+ ),
&branch,
Some(&mut m),
) {
@@ -263,11 +268,13 @@ impl VersionGuesser {
if !branch.is_empty() && {
let mut tmp: IndexMap<CaptureKey, String> = IndexMap::new();
- !Preg::is_match3(r"{^ *.+/HEAD }", &branch, Some(&mut tmp))
+ !Preg::is_match3(php_regex!(r"{^ *.+/HEAD }"), &branch, Some(&mut tmp))
} {
let mut m: IndexMap<CaptureKey, String> = IndexMap::new();
if Preg::is_match3(
- r"{^(?:\* )? *((?:remotes/(?:origin|upstream)/)?[^\s/]+) *([a-f0-9]+) .*$}",
+ php_regex!(
+ r"{^(?:\* )? *((?:remotes/(?:origin|upstream)/)?[^\s/]+) *([a-f0-9]+) .*$}"
+ ),
&branch,
Some(&mut m),
) {
@@ -516,7 +523,8 @@ impl VersionGuesser {
)
.is_some();
if !has_branch_alias || has_self_version {
- let branch = Preg::replace(r"{^dev-}", "", version.as_deref().unwrap_or(""));
+ let branch =
+ Preg::replace(php_regex!(r"{^dev-}"), "", version.as_deref().unwrap_or(""));
let mut length: i64 = PHP_INT_MAX;
// return directly, if branch is configured to be non-feature branch
@@ -549,7 +557,8 @@ impl VersionGuesser {
let mut last_index: i64 = -1;
for (index, candidate) in branches.iter().enumerate() {
let index = index as i64;
- let candidate_version = Preg::replace(r"{^remotes/\S+/}", "", candidate);
+ let candidate_version =
+ Preg::replace(php_regex!(r"{^remotes/\S+/}"), "", candidate);
// do not compare against itself or other feature branches
if candidate == &branch
@@ -625,7 +634,7 @@ impl VersionGuesser {
}
!Preg::is_match(
- &format!(
+ format!(
r"{{^({}|master|main|latest|next|current|support|tip|trunk|default|develop|\d+\..+)$}}",
non_feature_branches,
),
@@ -772,7 +781,11 @@ impl VersionGuesser {
}
};
let mut m: IndexMap<CaptureKey, String> = IndexMap::new();
- if Preg::is_match3(r"{^(\d+(?:\.\d+)*)-dev$}i", &version, Some(&mut m)) {
+ if Preg::is_match3(
+ php_regex!(r"{^(\d+(?:\.\d+)*)-dev$}i"),
+ &version,
+ Some(&mut m),
+ ) {
return Ok(format!(
"{}.x-dev",
m.get(&CaptureKey::ByIndex(1)).cloned().unwrap_or_default()
diff --git a/crates/shirabe/src/package/version/version_parser.rs b/crates/shirabe/src/package/version/version_parser.rs
index 3527722c..8cf3aa72 100644
--- a/crates/shirabe/src/package/version/version_parser.rs
+++ b/crates/shirabe/src/package/version/version_parser.rs
@@ -3,6 +3,7 @@
use crate::repository::PlatformRepository;
use indexmap::IndexMap;
use shirabe_external_packages::composer::pcre::Preg;
+use shirabe_php_shim::php_regex;
use shirabe_semver::Semver;
use shirabe_semver::VersionParser as SemverVersionParser;
use shirabe_semver::constraint::AnyConstraint;
@@ -49,11 +50,18 @@ impl VersionParser {
let count = pairs.len();
let mut i = 0_usize;
while i < count {
- let mut pair = Preg::replace(r"{^([^=: ]+)[=: ](.*)$}", "$1 $2", pairs[i].trim());
+ let mut pair = Preg::replace(
+ php_regex!(r"{^([^=: ]+)[=: ](.*)$}"),
+ "$1 $2",
+ pairs[i].trim(),
+ );
if !pair.contains(' ')
&& i + 1 < count
&& !pairs[i + 1].contains('/')
- && !Preg::is_match(r"{(?<=[a-z0-9_/-])\*|\*(?=[a-z0-9_/-])}i", &pairs[i + 1])
+ && !Preg::is_match(
+ php_regex!(r"{(?<=[a-z0-9_/-])\*|\*(?=[a-z0-9_/-])}i"),
+ &pairs[i + 1],
+ )
&& !PlatformRepository::is_platform_package(&pairs[i + 1])
{
pair += &format!(" {}", pairs[i + 1]);
diff --git a/crates/shirabe/src/package/version/version_selector.rs b/crates/shirabe/src/package/version/version_selector.rs
index 48b045eb..ff5e7586 100644
--- a/crates/shirabe/src/package/version/version_selector.rs
+++ b/crates/shirabe/src/package/version/version_selector.rs
@@ -18,7 +18,8 @@ use crate::repository::RepositorySetInterface;
use indexmap::IndexMap;
use shirabe_external_packages::composer::pcre::Preg;
use shirabe_php_shim::{
- PHP_MAJOR_VERSION, PHP_MINOR_VERSION, PHP_RELEASE_VERSION, strtolower, version_compare,
+ PHP_MAJOR_VERSION, PHP_MINOR_VERSION, PHP_RELEASE_VERSION, php_regex, strtolower,
+ version_compare,
};
use shirabe_semver::constraint::AnyConstraint;
use shirabe_semver::constraint::SimpleConstraint;
@@ -280,7 +281,11 @@ impl VersionSelector {
if let Some(extra) = extra
&& extra != VersionParser::DEFAULT_BRANCH_ALIAS
{
- let new_extra = Preg::replace(r"{^(\d+\.\d+\.\d+)(\.9999999)-dev$}", "$1.0", &extra);
+ let new_extra = Preg::replace(
+ php_regex!(r"{^(\d+\.\d+\.\d+)(\.9999999)-dev$}"),
+ "$1.0",
+ &extra,
+ );
if new_extra != extra {
let new_extra = new_extra.replace(".9999999", ".0");
return self.transform_version(&new_extra, &new_extra, "dev");
@@ -299,7 +304,7 @@ impl VersionSelector {
let semantic_version_parts: Vec<&str> = version.split('.').collect();
if semantic_version_parts.len() == 4
- && Preg::is_match(r"{^\d+\D?}", semantic_version_parts[3])
+ && Preg::is_match(php_regex!(r"{^\d+\D?}"), semantic_version_parts[3])
{
let mut parts: Vec<String> = semantic_version_parts
.iter()