Remove all unwraps from production code
This commit is contained in:
parent
90a86ef95f
commit
d706826279
3 changed files with 24 additions and 7 deletions
|
@ -34,9 +34,9 @@ impl Index {
|
||||||
|
|
||||||
pub fn save(&mut self) -> Result<()> {
|
pub fn save(&mut self) -> Result<()> {
|
||||||
let lock_id = Uuid::new_v4();
|
let lock_id = Uuid::new_v4();
|
||||||
let lock = Lock::new(&self.index_directory())?;
|
let lock = Lock::new(&self.index_directory()?)?;
|
||||||
if self.index_file_path().exists() {
|
if self.index_file_path().exists() {
|
||||||
let index = Index::load_from_file(&Index::index_file_path_for_repository_path(&self.index_directory()))?;
|
let index = Index::load_from_file(&Index::index_file_path_for_repository_path(&self.index_directory()?))?;
|
||||||
self.merge_items_by_file_id(index.items_by_file_id);
|
self.merge_items_by_file_id(index.items_by_file_id);
|
||||||
self.merge_newest_items(index.newest_items_by_source_path);
|
self.merge_newest_items(index.newest_items_by_source_path);
|
||||||
self.version = max(self.version.clone(), index.version);
|
self.version = max(self.version.clone(), index.version);
|
||||||
|
@ -52,7 +52,12 @@ impl Index {
|
||||||
where
|
where
|
||||||
T: AsRef<Path>,
|
T: AsRef<Path>,
|
||||||
{
|
{
|
||||||
fs::create_dir_all(path.as_ref().parent().unwrap()).context("create index directory")?;
|
fs::create_dir_all(
|
||||||
|
path.as_ref()
|
||||||
|
.parent()
|
||||||
|
.ok_or(anyhow!("cannot compute parent path for {}", path.as_ref().to_string_lossy()))?,
|
||||||
|
)
|
||||||
|
.context("create index directory")?;
|
||||||
|
|
||||||
let file = AtomicFile::new(&path, AllowOverwrite);
|
let file = AtomicFile::new(&path, AllowOverwrite);
|
||||||
|
|
||||||
|
@ -99,7 +104,14 @@ impl Index {
|
||||||
path.join("index")
|
path.join("index")
|
||||||
}
|
}
|
||||||
|
|
||||||
fn index_directory(&self) -> PathBuf {
|
fn index_directory(&self) -> Result<PathBuf> {
|
||||||
self.index_file_path().parent().unwrap().to_path_buf()
|
Ok(self
|
||||||
|
.index_file_path()
|
||||||
|
.parent()
|
||||||
|
.ok_or(anyhow!(
|
||||||
|
"cannot compute parent path for {}",
|
||||||
|
self.index_file_path().to_string_lossy()
|
||||||
|
))?
|
||||||
|
.to_path_buf())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -113,7 +113,10 @@ impl<'a> Repository<'a> {
|
||||||
let destination_path = Path::new(&destination_path);
|
let destination_path = Path::new(&destination_path);
|
||||||
|
|
||||||
if source_path.is_file() {
|
if source_path.is_file() {
|
||||||
let parent = destination_path.parent().unwrap();
|
let parent = destination_path.parent().ok_or(anyhow!(
|
||||||
|
"cannot compute parent path for {}",
|
||||||
|
&destination_path.to_string_lossy()
|
||||||
|
))?;
|
||||||
fs::create_dir_all(parent)?;
|
fs::create_dir_all(parent)?;
|
||||||
fs::copy(source_path, destination_path)?;
|
fs::copy(source_path, destination_path)?;
|
||||||
let relative_path = destination_path.strip_prefix(self.path)?;
|
let relative_path = destination_path.strip_prefix(self.path)?;
|
||||||
|
|
|
@ -34,7 +34,9 @@ impl RepositoryItem {
|
||||||
if !target_path.is_absolute() {
|
if !target_path.is_absolute() {
|
||||||
return Err(anyhow!("path to store not absolute"));
|
return Err(anyhow!("path to store not absolute"));
|
||||||
}
|
}
|
||||||
let parent = target_path.parent().unwrap();
|
let parent = target_path
|
||||||
|
.parent()
|
||||||
|
.ok_or(anyhow!("cannot compute parent path for {}", &target_path.to_string_lossy()))?;
|
||||||
if !parent.exists() {
|
if !parent.exists() {
|
||||||
fs::create_dir_all(parent)?;
|
fs::create_dir_all(parent)?;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue