diff options
Diffstat (limited to 'src/manager.rs')
| -rw-r--r-- | src/manager.rs | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/src/manager.rs b/src/manager.rs index 66ed6f6..6f3cfac 100644 --- a/src/manager.rs +++ b/src/manager.rs @@ -1,6 +1,6 @@ use tokio::fs; -use crate::{AppImage, Downloader, Index, SymlinkManager, index_dir}; +use crate::{AppImage, Downloader, Index, Result, SymlinkManager, index_dir}; #[derive(Debug, Default)] pub struct PackageManager { @@ -17,18 +17,15 @@ impl PackageManager { symlink_manager: SymlinkManager::new(), } } - pub async fn install( - &self, - appimage: &mut AppImage, - appname: &str, - ) -> Result<(), Box<dyn std::error::Error>> { - if self.index.exists(&appimage.executable) { - return Err(format!("{} is already installed.", &appimage.executable).into()); + pub async fn install(&self, appimage: &mut AppImage, appname: &str) -> Result<()> { + if self.index.exists(&appimage.executable)? { + println!("{} is already installed.", appimage.executable); + return Ok(()); } appimage.file_path = self .downloader - .prepare_path(&appimage.source.meta.url, &appimage.executable); + .prepare_path(&appimage.source.meta.url, &appimage.executable)?; self.downloader .download_with_progress(&appimage.source.meta.url, &appimage.file_path) .await?; @@ -37,7 +34,7 @@ impl PackageManager { self.symlink_manager.create(appimage).await?; Ok(()) } - pub async fn remove(&self, appname: &str) -> Result<(), Box<dyn std::error::Error>> { + pub async fn remove(&self, appname: &str) -> Result<()> { let appimage = self.index.get(appname).await?; fs::remove_file(&appimage.file_path).await?; @@ -46,8 +43,8 @@ impl PackageManager { Ok(()) } - pub async fn list(&self) -> Result<(), Box<dyn std::error::Error>> { - let mut appimages = fs::read_dir(index_dir()).await?; + pub async fn list(&self) -> Result<()> { + let mut appimages = fs::read_dir(index_dir()?).await?; while let Some(appimage) = appimages.next_entry().await? { if let Some(stem) = appimage.path().file_stem().and_then(|s| s.to_str()) { |
