mirror of
https://gitlab.com/gabmus/envision.git
synced 2025-07-28 19:58:47 +00:00
fix: override remote url if it changes on pull
This commit is contained in:
parent
a8f673c133
commit
084c56ec2b
3 changed files with 86 additions and 2 deletions
68
Cargo.lock
generated
68
Cargo.lock
generated
|
@ -139,6 +139,9 @@ name = "cc"
|
||||||
version = "1.0.79"
|
version = "1.0.79"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
|
checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
|
||||||
|
dependencies = [
|
||||||
|
"jobserver",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cfg-expr"
|
name = "cfg-expr"
|
||||||
|
@ -497,6 +500,21 @@ dependencies = [
|
||||||
"winapi",
|
"winapi",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "git2"
|
||||||
|
version = "0.17.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "7b989d6a7ca95a362cf2cfc5ad688b3a467be1f87e480b8dad07fee8c79b0044"
|
||||||
|
dependencies = [
|
||||||
|
"bitflags",
|
||||||
|
"libc",
|
||||||
|
"libgit2-sys",
|
||||||
|
"log",
|
||||||
|
"openssl-probe",
|
||||||
|
"openssl-sys",
|
||||||
|
"url",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "glib"
|
name = "glib"
|
||||||
version = "0.17.10"
|
version = "0.17.10"
|
||||||
|
@ -843,6 +861,15 @@ version = "1.0.8"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "62b02a5381cc465bd3041d84623d0fa3b66738b52b8e2fc3bab8ad63ab032f4a"
|
checksum = "62b02a5381cc465bd3041d84623d0fa3b66738b52b8e2fc3bab8ad63ab032f4a"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "jobserver"
|
||||||
|
version = "0.1.26"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "js-sys"
|
name = "js-sys"
|
||||||
version = "0.3.64"
|
version = "0.3.64"
|
||||||
|
@ -897,6 +924,34 @@ version = "0.2.147"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
|
checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "libgit2-sys"
|
||||||
|
version = "0.15.2+1.6.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "a80df2e11fb4a61f4ba2ab42dbe7f74468da143f1a75c74e11dee7c813f694fa"
|
||||||
|
dependencies = [
|
||||||
|
"cc",
|
||||||
|
"libc",
|
||||||
|
"libssh2-sys",
|
||||||
|
"libz-sys",
|
||||||
|
"openssl-sys",
|
||||||
|
"pkg-config",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "libssh2-sys"
|
||||||
|
version = "0.3.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "2dc8a030b787e2119a731f1951d6a773e2280c660f8ec4b0f5e1505a386e71ee"
|
||||||
|
dependencies = [
|
||||||
|
"cc",
|
||||||
|
"libc",
|
||||||
|
"libz-sys",
|
||||||
|
"openssl-sys",
|
||||||
|
"pkg-config",
|
||||||
|
"vcpkg",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "libusb"
|
name = "libusb"
|
||||||
version = "0.3.0"
|
version = "0.3.0"
|
||||||
|
@ -918,6 +973,18 @@ dependencies = [
|
||||||
"pkg-config",
|
"pkg-config",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "libz-sys"
|
||||||
|
version = "1.1.12"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b"
|
||||||
|
dependencies = [
|
||||||
|
"cc",
|
||||||
|
"libc",
|
||||||
|
"pkg-config",
|
||||||
|
"vcpkg",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "linux-raw-sys"
|
name = "linux-raw-sys"
|
||||||
version = "0.3.8"
|
version = "0.3.8"
|
||||||
|
@ -1471,6 +1538,7 @@ version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"gettext-rs",
|
"gettext-rs",
|
||||||
|
"git2",
|
||||||
"gtk4",
|
"gtk4",
|
||||||
"libusb",
|
"libusb",
|
||||||
"nix",
|
"nix",
|
||||||
|
|
|
@ -10,6 +10,7 @@ anyhow = "1.0.71"
|
||||||
gettext-rs = { version = "0.7.0", features = [
|
gettext-rs = { version = "0.7.0", features = [
|
||||||
"gettext-system"
|
"gettext-system"
|
||||||
] }
|
] }
|
||||||
|
git2 = "0.17.2"
|
||||||
gtk4 = { version = "0.6.6", features = [
|
gtk4 = { version = "0.6.6", features = [
|
||||||
"v4_10",
|
"v4_10",
|
||||||
] }
|
] }
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
use std::path::Path;
|
|
||||||
|
|
||||||
use crate::{profile::Profile, runner::Runner};
|
use crate::{profile::Profile, runner::Runner};
|
||||||
|
use git2::Repository;
|
||||||
|
use std::path::Path;
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct Git {
|
pub struct Git {
|
||||||
|
@ -36,7 +36,22 @@ impl Git {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn override_remote_url(&self) -> Result<(), git2::Error> {
|
||||||
|
if let Ok(repo) = Repository::open(&self.dir) {
|
||||||
|
let current_remote_url = self.get_repo();
|
||||||
|
let remote = repo
|
||||||
|
.find_remote("origin")?;
|
||||||
|
if remote.url().unwrap_or("") != current_remote_url {
|
||||||
|
repo.remote_set_url("origin", ¤t_remote_url)?;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
pub fn get_pull_runner(&self) -> Runner {
|
pub fn get_pull_runner(&self) -> Runner {
|
||||||
|
if self.override_remote_url().is_err() {
|
||||||
|
println!("Warning: failed to override git repo remote URL!")
|
||||||
|
}
|
||||||
Runner::new(
|
Runner::new(
|
||||||
None,
|
None,
|
||||||
"git".into(),
|
"git".into(),
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue