From f419a08d2861d76dce3d2a8206d6f1eb24bf1f2e Mon Sep 17 00:00:00 2001 From: Naz Date: Tue, 29 Jul 2025 13:24:35 +0100 Subject: =?UTF-8?q?=F0=9F=94=A7refactor:=20use=20separate=20structs=20for?= =?UTF-8?q?=20download=20logic?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.rs | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index 4c3d5d7..175b583 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,7 +1,9 @@ use clap::Parser; use tokio::fs; -use zap_rs::{AppImage, Cli, Command, Source, SourceMetadata, appimages_dir, index_dir}; +use zap_rs::{ + AppImage, Cli, Command, PackageManager, Source, SourceMetadata, appimages_dir, index_dir, +}; #[tokio::main] async fn main() -> Result<(), Box> { @@ -24,23 +26,10 @@ async fn main() -> Result<(), Box> { }, }; - if index_dir() - .join(format!("{}.json", &options.executable)) - .exists() - { - eprintln!("{} is already installed.", &options.executable); - } else { - options.download_from_url().await?; - options.save_to_index(&args.appname).await?; - options.create_symlink().await?; - } + PackageManager::install(&options, &args.appname).await?; } Command::Remove(args) => { - let index_file_path = index_dir().join(format!("{}.json", args.appname)); - let index_file_content = fs::read_to_string(&index_file_path).await?; - let appimage: AppImage = serde_json::from_str(&index_file_content)?; - - appimage.remove().await?; + PackageManager::remove(&args.appname).await?; } Command::List => { let mut appimages = fs::read_dir(index_dir()).await?; -- cgit v1.2.3 From b5014598543533403fb11b570345790ff06d0cce Mon Sep 17 00:00:00 2001 From: Naz Date: Tue, 29 Jul 2025 16:29:50 +0100 Subject: =?UTF-8?q?=F0=9F=94=A7refactor:=20replace=20old=20logic=20with=20?= =?UTF-8?q?new=20methods?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.rs | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index 175b583..f1f6bbd 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,9 +1,9 @@ +use std::path::PathBuf; + use clap::Parser; use tokio::fs; -use zap_rs::{ - AppImage, Cli, Command, PackageManager, Source, SourceMetadata, appimages_dir, index_dir, -}; +use zap_rs::{AppImage, Cli, Command, PackageManager, Source, SourceMetadata, index_dir}; #[tokio::main] async fn main() -> Result<(), Box> { @@ -11,14 +11,8 @@ async fn main() -> Result<(), Box> { match args.command { Command::Install(args) => { - let options = AppImage { - file_path: appimages_dir().join( - args.from - .split('/') - .next_back() - .filter(|s| !s.is_empty()) - .unwrap_or("app.AppImage"), - ), + let mut options = AppImage { + file_path: PathBuf::new(), executable: args.executable.unwrap_or(args.appname.clone()), source: Source { identifier: "raw_url".to_string(), @@ -26,10 +20,12 @@ async fn main() -> Result<(), Box> { }, }; - PackageManager::install(&options, &args.appname).await?; + let pm = PackageManager::new(); + pm.install(&mut options, &args.appname).await?; } Command::Remove(args) => { - PackageManager::remove(&args.appname).await?; + let pm = PackageManager::new(); + pm.remove(&args.appname).await?; } Command::List => { let mut appimages = fs::read_dir(index_dir()).await?; -- cgit v1.2.3 From 42fa16e58b8a1563650c54bf9eb55e7e9dcef11b Mon Sep 17 00:00:00 2001 From: Naz Date: Tue, 29 Jul 2025 16:58:08 +0100 Subject: =?UTF-8?q?=F0=9F=94=A7refactor:=20use=20a=20single=20PackageManag?= =?UTF-8?q?er=20instance?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index f1f6bbd..2b588e0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -8,6 +8,7 @@ use zap_rs::{AppImage, Cli, Command, PackageManager, Source, SourceMetadata, ind #[tokio::main] async fn main() -> Result<(), Box> { let args = Cli::parse(); + let pm = PackageManager::new(); match args.command { Command::Install(args) => { @@ -20,11 +21,9 @@ async fn main() -> Result<(), Box> { }, }; - let pm = PackageManager::new(); pm.install(&mut options, &args.appname).await?; } Command::Remove(args) => { - let pm = PackageManager::new(); pm.remove(&args.appname).await?; } Command::List => { -- cgit v1.2.3 From 11a86042e73bb0eecad61ac6e636dd98563167f5 Mon Sep 17 00:00:00 2001 From: Naz Date: Wed, 30 Jul 2025 07:09:37 +0100 Subject: =?UTF-8?q?=F0=9F=94=A7refactor:=20move=20the=20list=20logic=20to?= =?UTF-8?q?=20PackageManager?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.rs | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) (limited to 'src/main.rs') 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> { @@ -27,13 +26,7 @@ async fn main() -> Result<(), Box> { 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?; } }; -- cgit v1.2.3