use crate::error::OxenError;
use crate::model::{LocalRepository, Remote};
pub fn set_remote(repo: &mut LocalRepository, name: &str, url: &str) -> Result<Remote, OxenError> {
if url::Url::parse(url).is_err() {
return Err(OxenError::invalid_set_remote_url(url));
}
if repo.is_remote_mode() {
return Err(OxenError::basic_str(
"Error: Cannot change remote of remote-mode repos",
));
}
let remote = repo.set_remote(name, url);
repo.save()?;
Ok(remote)
}
pub fn delete_remote(repo: &mut LocalRepository, name: &str) -> Result<(), OxenError> {
if repo.is_remote_mode() {
return Err(OxenError::basic_str(
"Error: Cannot delete from remote of remote-mode repos",
));
}
repo.delete_remote(name);
repo.save()?;
Ok(())
}