aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/repository/vcs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/shirabe/src/repository/vcs')
-rw-r--r--crates/shirabe/src/repository/vcs/forgejo_driver.rs4
-rw-r--r--crates/shirabe/src/repository/vcs/git_bitbucket_driver.rs12
-rw-r--r--crates/shirabe/src/repository/vcs/git_driver.rs14
-rw-r--r--crates/shirabe/src/repository/vcs/github_driver.rs67
-rw-r--r--crates/shirabe/src/repository/vcs/gitlab_driver.rs63
-rw-r--r--crates/shirabe/src/repository/vcs/hg_driver.rs34
-rw-r--r--crates/shirabe/src/repository/vcs/svn_driver.rs55
7 files changed, 55 insertions, 194 deletions
diff --git a/crates/shirabe/src/repository/vcs/forgejo_driver.rs b/crates/shirabe/src/repository/vcs/forgejo_driver.rs
index 8aa72a6c..8047602a 100644
--- a/crates/shirabe/src/repository/vcs/forgejo_driver.rs
+++ b/crates/shirabe/src/repository/vcs/forgejo_driver.rs
@@ -15,7 +15,7 @@ use crate::util::ForgejoRepositoryData;
use crate::util::ForgejoUrl;
use crate::util::http::Response;
use indexmap::IndexMap;
-use shirabe_pcre::{CaptureKey, Preg};
+use shirabe_pcre::Preg;
use shirabe_php_shim::Catch as _;
use shirabe_php_shim::{
PhpMixed, RuntimeException, base64_decode, explode, extension_loaded, php_regex, urlencode,
@@ -585,7 +585,7 @@ impl ForgejoDriver {
let links = explode(",", &header);
for link in links {
if let Some(m) = Preg::match3(php_regex!(r#"{<(.+?)>; *rel="next"}"#), &link)
- && let Some(url) = m.get(&CaptureKey::ByIndex(1))
+ && let Some(url) = m.get(1)
{
return Some(url.to_string());
}
diff --git a/crates/shirabe/src/repository/vcs/git_bitbucket_driver.rs b/crates/shirabe/src/repository/vcs/git_bitbucket_driver.rs
index e053cadf..5f83b4e1 100644
--- a/crates/shirabe/src/repository/vcs/git_bitbucket_driver.rs
+++ b/crates/shirabe/src/repository/vcs/git_bitbucket_driver.rs
@@ -15,7 +15,7 @@ use crate::util::Bitbucket;
use crate::util::http::Response;
use chrono::{DateTime, FixedOffset};
use indexmap::IndexMap;
-use shirabe_pcre::{CaptureKey, Preg};
+use shirabe_pcre::Preg;
use shirabe_php_shim::Catch as _;
use shirabe_php_shim::{
InvalidArgumentException, LogicException, PhpMixed, RuntimeException, array_key_exists,
@@ -95,14 +95,8 @@ impl GitBitbucketDriver {
.into());
};
- self.owner = m
- .get(&CaptureKey::ByIndex(1))
- .unwrap_or_default()
- .to_string();
- self.repository = m
- .get(&CaptureKey::ByIndex(2))
- .unwrap_or_default()
- .to_string();
+ self.owner = m.get(1).unwrap_or_default().to_string();
+ self.repository = m.get(2).unwrap_or_default().to_string();
self.inner.origin_url = "bitbucket.org".to_string();
self.inner.cache = Some(Cache::new(
self.inner.io.clone(),
diff --git a/crates/shirabe/src/repository/vcs/git_driver.rs b/crates/shirabe/src/repository/vcs/git_driver.rs
index bd56766b..c224e8e6 100644
--- a/crates/shirabe/src/repository/vcs/git_driver.rs
+++ b/crates/shirabe/src/repository/vcs/git_driver.rs
@@ -14,7 +14,7 @@ use crate::util::Url;
use chrono::TimeZone;
use chrono::{DateTime, FixedOffset, Utc};
use indexmap::IndexMap;
-use shirabe_pcre::{CaptureKey, Preg};
+use shirabe_pcre::Preg;
use shirabe_php_shim::Catch as _;
use shirabe_php_shim::{
InvalidArgumentException, RuntimeException, dirname, is_dir, is_writable, realpath,
@@ -200,7 +200,7 @@ impl GitDriver {
for branch in &branches {
if !branch.is_empty()
&& let Some(caps) = Preg::match3(php_regex!(r"{^\* +(\S+)}"), branch)
- && let Some(name) = caps.get(&CaptureKey::ByIndex(1))
+ && let Some(name) = caps.get(1)
{
self.root_identifier = Some(name.to_string());
break;
@@ -313,10 +313,7 @@ impl GitDriver {
php_regex!(r"{^([a-f0-9]{40}) refs/tags/(\S+?)(\^\{\})?$}"),
&tag,
)
- && let (Some(hash), Some(name)) = (
- caps.get(&CaptureKey::ByIndex(1)),
- caps.get(&CaptureKey::ByIndex(2)),
- )
+ && let (Some(hash), Some(name)) = (caps.get(1), caps.get(2))
{
self.tags
.as_mut()
@@ -352,10 +349,7 @@ impl GitDriver {
php_regex!(r"{^(?:\* )? *(\S+) *([a-f0-9]+)(?: .*)?$}"),
&branch,
)
- && let (Some(name), Some(hash)) = (
- caps.get(&CaptureKey::ByIndex(1)),
- caps.get(&CaptureKey::ByIndex(2)),
- )
+ && let (Some(name), Some(hash)) = (caps.get(1), caps.get(2))
&& !name.starts_with('-')
{
branches.insert(name.to_string(), hash.to_string());
diff --git a/crates/shirabe/src/repository/vcs/github_driver.rs b/crates/shirabe/src/repository/vcs/github_driver.rs
index 08561171..11bb9503 100644
--- a/crates/shirabe/src/repository/vcs/github_driver.rs
+++ b/crates/shirabe/src/repository/vcs/github_driver.rs
@@ -14,7 +14,7 @@ use crate::util::GitHub;
use crate::util::http::Response;
use chrono::{DateTime, FixedOffset};
use indexmap::IndexMap;
-use shirabe_pcre::{CaptureKey, Preg};
+use shirabe_pcre::Preg;
use shirabe_php_shim::Catch as _;
use shirabe_php_shim::{
InvalidArgumentException, PhpMixed, RuntimeException, array_diff, array_map,
@@ -83,25 +83,14 @@ impl GitHubDriver {
.into());
};
- self.owner = match_
- .get(&CaptureKey::ByIndex(3))
- .unwrap_or_default()
- .to_string();
- self.repository = match_
- .get(&CaptureKey::ByIndex(4))
- .unwrap_or_default()
- .to_string();
+ self.owner = match_.get(3).unwrap_or_default().to_string();
+ self.repository = match_.get(4).unwrap_or_default().to_string();
self.inner.origin_url = strtolower(
&match_
- .get(&CaptureKey::ByIndex(1))
+ .get(1)
.filter(|s| !s.is_empty())
.map(str::to_string)
- .unwrap_or_else(|| {
- match_
- .get(&CaptureKey::ByIndex(2))
- .unwrap_or_default()
- .to_string()
- }),
+ .unwrap_or_else(|| match_.get(2).unwrap_or_default().to_string()),
);
if self.inner.origin_url == "www.github.com" {
self.inner.origin_url = "github.com".to_string();
@@ -494,23 +483,14 @@ impl GitHubDriver {
for line in preg_split(php_regex!(r"{\r?\n}"), &funding) {
let line = trim(&line, None);
if let Some(m) = Preg::is_match3(php_regex!(r"{^(\w+)\s*:\s*(.+)$}"), &line) {
- let g1 = m
- .get(&CaptureKey::ByIndex(1))
- .unwrap_or_default()
- .to_string();
- let g2 = m
- .get(&CaptureKey::ByIndex(2))
- .unwrap_or_default()
- .to_string();
+ let g1 = m.get(1).unwrap_or_default().to_string();
+ let g2 = m.get(2).unwrap_or_default().to_string();
if g2 == "[" {
key = Some(g1);
continue;
}
if let Some(m2) = Preg::is_match3(php_regex!(r"{^\[(.*?)\](?:\s*#.*)?$}"), &g2) {
- let inner = m2
- .get(&CaptureKey::ByIndex(1))
- .unwrap_or_default()
- .to_string();
+ let inner = m2.get(1).unwrap_or_default().to_string();
for item in array_map(
|s: &String| trim(s, None),
&preg_split(php_regex!(r#"{[\'\"]?\s*,\s*[\'\"]?}"#), &inner),
@@ -530,20 +510,13 @@ impl GitHubDriver {
entry.insert("type".to_string(), PhpMixed::String(g1.clone()));
entry.insert(
"url".to_string(),
- PhpMixed::String(trim(
- m2.get(&CaptureKey::ByIndex(1)).unwrap_or_default(),
- Some("\"' "),
- )),
+ PhpMixed::String(trim(m2.get(1).unwrap_or_default(), Some("\"' "))),
);
result.push(entry);
}
key = None;
} else if let Some(m) = Preg::is_match3(php_regex!(r"{^(\w+)\s*:\s*#\s*$}"), &line) {
- key = Some(
- m.get(&CaptureKey::ByIndex(1))
- .unwrap_or_default()
- .to_string(),
- );
+ key = Some(m.get(1).unwrap_or_default().to_string());
} else if key.is_some()
&& let Some(m) = Preg::is_match3(php_regex!(r"{^-\s*(.+)(?:\s+#.*)?$}"), &line)
.or_else(|| Preg::is_match3(php_regex!(r"{^(.+),(?:\s*#.*)?$}"), &line))
@@ -555,10 +528,7 @@ impl GitHubDriver {
);
entry.insert(
"url".to_string(),
- PhpMixed::String(trim(
- m.get(&CaptureKey::ByIndex(1)).unwrap_or_default(),
- Some("\"' "),
- )),
+ PhpMixed::String(trim(m.get(1).unwrap_or_default(), Some("\"' "))),
);
result.push(entry);
} else if key.is_some() && line == "]" {
@@ -948,15 +918,10 @@ impl GitHubDriver {
};
let origin_url = matches
- .get(&CaptureKey::ByIndex(2))
+ .get(2)
.filter(|s| !s.is_empty())
.map(str::to_string)
- .unwrap_or_else(|| {
- matches
- .get(&CaptureKey::ByIndex(3))
- .unwrap_or_default()
- .to_string()
- });
+ .unwrap_or_else(|| matches.get(3).unwrap_or_default().to_string());
if !in_array_loose(
strtolower(&Preg::replace(php_regex!(r"{^www\.}i"), "", &origin_url)),
config.borrow().get("github-domains").values(),
@@ -1285,11 +1250,7 @@ impl GitHubDriver {
let links = explode(",", &header);
for link in &links {
if let Some(m) = Preg::is_match3(php_regex!(r#"{<(.+?)>; *rel="next"}"#), link) {
- return Some(
- m.get(&CaptureKey::ByIndex(1))
- .unwrap_or_default()
- .to_string(),
- );
+ return Some(m.get(1).unwrap_or_default().to_string());
}
}
diff --git a/crates/shirabe/src/repository/vcs/gitlab_driver.rs b/crates/shirabe/src/repository/vcs/gitlab_driver.rs
index 5494feed..30c3f7ae 100644
--- a/crates/shirabe/src/repository/vcs/gitlab_driver.rs
+++ b/crates/shirabe/src/repository/vcs/gitlab_driver.rs
@@ -15,7 +15,7 @@ use crate::util::HttpDownloader;
use crate::util::http::Response;
use chrono::{DateTime, FixedOffset};
use indexmap::IndexMap;
-use shirabe_pcre::{CaptureKey, Preg};
+use shirabe_pcre::Preg;
use shirabe_php_shim::Catch as _;
use shirabe_php_shim::{
InvalidArgumentException, LogicException, PhpMixed, RuntimeException, array_search_mixed,
@@ -90,27 +90,14 @@ impl GitLabDriver {
};
let guessed_domain = match_
- .get(&CaptureKey::ByName("domain".to_string()))
+ .name("domain")
.filter(|s| !s.is_empty())
.map(str::to_string)
- .unwrap_or_else(|| {
- match_
- .get(&CaptureKey::ByName("domain2".to_string()))
- .unwrap_or_default()
- .to_string()
- });
+ .unwrap_or_else(|| match_.name("domain2").unwrap_or_default().to_string());
let configured_domains = self.inner.config.borrow_mut().get("gitlab-domains");
- let mut url_parts: Vec<String> = explode(
- "/",
- match_
- .get(&CaptureKey::ByName("parts".to_string()))
- .unwrap_or_default(),
- );
+ let mut url_parts: Vec<String> = explode("/", match_.name("parts").unwrap_or_default());
- let scheme_match = match_
- .get(&CaptureKey::ByName("scheme".to_string()))
- .unwrap_or_default()
- .to_string();
+ let scheme_match = match_.name("scheme").unwrap_or_default().to_string();
self.scheme = if matches!(scheme_match.as_str(), "https" | "http") {
scheme_match
} else if self
@@ -124,9 +111,7 @@ impl GitLabDriver {
} else {
"https".to_string()
};
- let port = match_
- .get(&CaptureKey::ByName("port".to_string()))
- .map(str::to_string);
+ let port = match_.name("port").map(str::to_string);
let origin =
Self::determine_origin(&configured_domains, guessed_domain, &mut url_parts, port);
let origin = match origin {
@@ -170,9 +155,7 @@ impl GitLabDriver {
self.repository = Preg::replace(
php_regex!(r"#(\.git)$#"),
"",
- match_
- .get(&CaptureKey::ByName("repo".to_string()))
- .unwrap_or_default(),
+ match_.name("repo").unwrap_or_default(),
);
self.inner.cache = Some(Cache::new(
@@ -948,34 +931,19 @@ impl GitLabDriver {
return Ok(false);
};
- let scheme = match_
- .get(&CaptureKey::ByName("scheme".to_string()))
- .unwrap_or_default()
- .to_string();
+ let scheme = match_.name("scheme").unwrap_or_default().to_string();
let guessed_domain = match_
- .get(&CaptureKey::ByName("domain".to_string()))
+ .name("domain")
.filter(|s| !s.is_empty())
.map(str::to_string)
- .unwrap_or_else(|| {
- match_
- .get(&CaptureKey::ByName("domain2".to_string()))
- .unwrap_or_default()
- .to_string()
- });
- let mut url_parts: Vec<String> = explode(
- "/",
- match_
- .get(&CaptureKey::ByName("parts".to_string()))
- .unwrap_or_default(),
- );
+ .unwrap_or_else(|| match_.name("domain2").unwrap_or_default().to_string());
+ let mut url_parts: Vec<String> = explode("/", match_.name("parts").unwrap_or_default());
if Self::determine_origin(
&config.borrow().get("gitlab-domains"),
guessed_domain,
&mut url_parts,
- match_
- .get(&CaptureKey::ByName("port".to_string()))
- .map(str::to_string),
+ match_.name("port").map(str::to_string),
)
.is_none()
{
@@ -1011,12 +979,7 @@ impl GitLabDriver {
let links = explode(",", &header);
for link in &links {
if let Some(match_) = Preg::is_match3(php_regex!(r#"{<(.+?)>; *rel="next"}"#), link) {
- return Some(
- match_
- .get(&CaptureKey::ByIndex(1))
- .unwrap_or_default()
- .to_string(),
- );
+ return Some(match_.get(1).unwrap_or_default().to_string());
}
}
diff --git a/crates/shirabe/src/repository/vcs/hg_driver.rs b/crates/shirabe/src/repository/vcs/hg_driver.rs
index aae9c7cb..120b8ea8 100644
--- a/crates/shirabe/src/repository/vcs/hg_driver.rs
+++ b/crates/shirabe/src/repository/vcs/hg_driver.rs
@@ -11,7 +11,7 @@ use crate::util::Hg as HgUtils;
use crate::util::Url;
use chrono::{DateTime, FixedOffset, Utc};
use indexmap::IndexMap;
-use shirabe_pcre::{CaptureKey, Preg};
+use shirabe_pcre::Preg;
use shirabe_php_shim::Catch as _;
use shirabe_php_shim::{PhpMixed, RuntimeException, dirname, is_dir, is_writable, php_regex};
@@ -236,12 +236,8 @@ impl HgDriver {
&& let Some(m) = Preg::match3(php_regex!(r"(^([^\s]+)\s+\d+:(.*)$)"), &tag)
{
tags.insert(
- m.get(&CaptureKey::ByIndex(1))
- .unwrap_or_default()
- .to_string(),
- m.get(&CaptureKey::ByIndex(2))
- .unwrap_or_default()
- .to_string(),
+ m.get(1).unwrap_or_default().to_string(),
+ m.get(2).unwrap_or_default().to_string(),
);
}
}
@@ -269,17 +265,9 @@ impl HgDriver {
&& let Some(m) =
Preg::match3(php_regex!(r"(^([^\s]+)\s+\d+:([a-f0-9]+))"), &branch)
{
- let name = m
- .get(&CaptureKey::ByIndex(1))
- .unwrap_or_default()
- .to_string();
+ let name = m.get(1).unwrap_or_default().to_string();
if !name.starts_with('-') {
- branches.insert(
- name,
- m.get(&CaptureKey::ByIndex(2))
- .unwrap_or_default()
- .to_string(),
- );
+ branches.insert(name, m.get(2).unwrap_or_default().to_string());
}
}
}
@@ -295,17 +283,9 @@ impl HgDriver {
&& let Some(m) =
Preg::match3(php_regex!(r"(^(?:[\s*]*)([^\s]+)\s+\d+:(.*)$)"), &branch)
{
- let name = m
- .get(&CaptureKey::ByIndex(1))
- .unwrap_or_default()
- .to_string();
+ let name = m.get(1).unwrap_or_default().to_string();
if !name.starts_with('-') {
- bookmarks.insert(
- name,
- m.get(&CaptureKey::ByIndex(2))
- .unwrap_or_default()
- .to_string(),
- );
+ bookmarks.insert(name, m.get(2).unwrap_or_default().to_string());
}
}
}
diff --git a/crates/shirabe/src/repository/vcs/svn_driver.rs b/crates/shirabe/src/repository/vcs/svn_driver.rs
index bdd7f021..6fb987a4 100644
--- a/crates/shirabe/src/repository/vcs/svn_driver.rs
+++ b/crates/shirabe/src/repository/vcs/svn_driver.rs
@@ -13,7 +13,7 @@ use crate::util::Svn as SvnUtil;
use crate::util::Url;
use chrono::{DateTime, FixedOffset, Utc};
use indexmap::IndexMap;
-use shirabe_pcre::{CaptureKey, Preg};
+use shirabe_pcre::Preg;
use shirabe_php_shim::Catch as _;
use shirabe_php_shim::{
PhpMixed, RuntimeException, php_regex, stripos, strrpos, strtr, substr, trim,
@@ -259,14 +259,9 @@ impl SvnDriver {
let (path, rev) = if let Some(m) =
Preg::is_match3(php_regex!(r"{^(.+?)(@\d+)?/$}"), &identifier)
- && let Some(rev) = m.get(&CaptureKey::ByIndex(2))
+ && let Some(rev) = m.get(2)
{
- (
- m.get(&CaptureKey::ByIndex(1))
- .unwrap_or_default()
- .to_string(),
- rev.to_string(),
- )
+ (m.get(1).unwrap_or_default().to_string(), rev.to_string())
} else {
(identifier, String::new())
};
@@ -298,14 +293,9 @@ impl SvnDriver {
let (path, rev) = if let Some(m) =
Preg::is_match3(php_regex!(r"{^(.+?)(@\d+)?/$}"), &identifier)
- && let Some(rev) = m.get(&CaptureKey::ByIndex(2))
+ && let Some(rev) = m.get(2)
{
- (
- m.get(&CaptureKey::ByIndex(1))
- .unwrap_or_default()
- .to_string(),
- rev.to_string(),
- )
+ (m.get(1).unwrap_or_default().to_string(), rev.to_string())
} else {
(identifier, String::new())
};
@@ -319,10 +309,7 @@ impl SvnDriver {
&& let Some(m) =
Preg::is_match3(php_regex!(r"{^Last Changed Date: ([^(]+)}"), &line)
{
- let date_str = m
- .get(&CaptureKey::ByIndex(1))
- .unwrap_or_default()
- .to_string();
+ let date_str = m.get(1).unwrap_or_default().to_string();
return Ok(shirabe_php_shim::date_create::<Utc>(date_str.trim())
.ok()
.map(|d| d.fixed_offset()));
@@ -350,14 +337,8 @@ impl SvnDriver {
&& let Some(m) =
Preg::is_match3(php_regex!(r"{^\s*(\S+).*?(\S+)\s*$}"), &line)
{
- let rev: i64 = m
- .get(&CaptureKey::ByIndex(1))
- .and_then(|s| s.parse().ok())
- .unwrap_or(0);
- let path = m
- .get(&CaptureKey::ByIndex(2))
- .unwrap_or_default()
- .to_string();
+ let rev: i64 = m.get(1).and_then(|s| s.parse().ok()).unwrap_or(0);
+ let path = m.get(2).unwrap_or_default().to_string();
if path == "./" {
last_rev = rev;
} else {
@@ -399,14 +380,8 @@ impl SvnDriver {
&& let Some(m) =
Preg::is_match3(php_regex!(r"{^\s*(\S+).*?(\S+)\s*$}"), &line)
{
- let rev: i64 = m
- .get(&CaptureKey::ByIndex(1))
- .and_then(|s| s.parse().ok())
- .unwrap_or(0);
- let path = m
- .get(&CaptureKey::ByIndex(2))
- .unwrap_or_default()
- .to_string();
+ let rev: i64 = m.get(1).and_then(|s| s.parse().ok()).unwrap_or(0);
+ let path = m.get(2).unwrap_or_default().to_string();
if path == "./" {
let identifier = self.build_identifier(
&format!("/{}", self.trunk_path.clone().unwrap_or_default()),
@@ -440,14 +415,8 @@ impl SvnDriver {
&& let Some(m) =
Preg::is_match3(php_regex!(r"{^\s*(\S+).*?(\S+)\s*$}"), &line)
{
- let rev: i64 = m
- .get(&CaptureKey::ByIndex(1))
- .and_then(|s| s.parse().ok())
- .unwrap_or(0);
- let path = m
- .get(&CaptureKey::ByIndex(2))
- .unwrap_or_default()
- .to_string();
+ let rev: i64 = m.get(1).and_then(|s| s.parse().ok()).unwrap_or(0);
+ let path = m.get(2).unwrap_or_default().to_string();
if path == "./" {
last_rev = rev;
} else {