summaryrefslogtreecommitdiffstats
path: root/src/repo.rs
diff options
context:
space:
mode:
authorCyborus <cyborus@noreply.codeberg.org>2023-12-17 17:20:34 +0100
committerCyborus <cyborus@noreply.codeberg.org>2023-12-17 17:20:34 +0100
commitf57dceb1894acd5a531519068254ff9a08063512 (patch)
treec76c2e5659dadfca95b9faaa4e97ca3d6c33b621 /src/repo.rs
parentMerge pull request 'do apt update' (#22) from mingw-gcc into main (diff)
parentallow url as remote (diff)
downloadforgejo-cli-f57dceb1894acd5a531519068254ff9a08063512.tar.xz
forgejo-cli-f57dceb1894acd5a531519068254ff9a08063512.zip
Merge pull request 'allow url as remote' (#23) from url-remote into main
Reviewed-on: https://codeberg.org/Cyborus/forgejo-cli/pulls/23
Diffstat (limited to 'src/repo.rs')
-rw-r--r--src/repo.rs9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/repo.rs b/src/repo.rs
index 80249b5..a3521a4 100644
--- a/src/repo.rs
+++ b/src/repo.rs
@@ -10,9 +10,9 @@ pub struct RepoInfo {
}
impl RepoInfo {
- pub fn get_current(name: Option<&str>) -> eyre::Result<Self> {
+ pub fn get_current(remote: Option<&str>) -> eyre::Result<Self> {
let repo = git2::Repository::open(".")?;
- let url = get_remote(&repo, name)?;
+ let url = get_remote(&repo, remote)?;
let mut path = url.path_segments().ok_or_else(|| eyre!("bad path"))?;
let owner = path
@@ -50,6 +50,11 @@ impl RepoInfo {
}
fn get_remote(repo: &git2::Repository, name: Option<&str>) -> eyre::Result<Url> {
+ if let Some(name) = name {
+ if let Ok(url) = Url::parse(name) {
+ return Ok(url);
+ }
+ }
let remote_name;
let remote_name = match name {
Some(name) => name,