summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNaz <ndpm13@ch-naseem.com>2025-07-30 07:09:37 +0100
committerNaz <ndpm13@ch-naseem.com>2025-07-30 07:09:37 +0100
commit11a86042e73bb0eecad61ac6e636dd98563167f5 (patch)
treeb185168ceedb4f71b255e7e61a365566da41538d
parent42fa16e58b8a1563650c54bf9eb55e7e9dcef11b (diff)
🔧refactor: move the list logic to PackageManager
-rw-r--r--src/main.rs11
-rw-r--r--src/manager.rs13
2 files changed, 14 insertions, 10 deletions
diff --git a/src/main.rs b/src/main.rs
index 2b588e0..1d9505b 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,9 +1,8 @@
use std::path::PathBuf;
use clap::Parser;
-use tokio::fs;
-use zap_rs::{AppImage, Cli, Command, PackageManager, Source, SourceMetadata, index_dir};
+use zap_rs::{AppImage, Cli, Command, PackageManager, Source, SourceMetadata};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
@@ -27,13 +26,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
pm.remove(&args.appname).await?;
}
Command::List => {
- let mut appimages = fs::read_dir(index_dir()).await?;
-
- while let Some(appimage) = appimages.next_entry().await? {
- if let Some(name) = appimage.file_name().to_str() {
- println!("- {}", name.strip_suffix(".json").unwrap());
- }
- }
+ pm.list().await?;
}
};
diff --git a/src/manager.rs b/src/manager.rs
index 9257fa7..2c75900 100644
--- a/src/manager.rs
+++ b/src/manager.rs
@@ -1,6 +1,6 @@
use tokio::fs;
-use crate::{AppImage, Downloader, Index, SymlinkManager};
+use crate::{AppImage, Downloader, Index, SymlinkManager, index_dir};
#[derive(Debug, Default)]
pub struct PackageManager {
@@ -46,4 +46,15 @@ impl PackageManager {
Ok(())
}
+ pub async fn list(&self) -> Result<(), Box<dyn std::error::Error>> {
+ let mut appimages = fs::read_dir(index_dir()).await?;
+
+ while let Some(appimage) = appimages.next_entry().await? {
+ if let Some(name) = appimage.file_name().to_str() {
+ println!("- {}", name.strip_suffix(".json").unwrap());
+ }
+ }
+
+ Ok(())
+ }
}