This commit is contained in:
shibazaki 2025-10-09 09:28:45 +02:00
parent 0cba43f2e0
commit ee97021e70

View File

@ -3,13 +3,37 @@ mod loaders;
use crate::loaders::sources::{load_sources, save_sources_to_toml}; use crate::loaders::sources::{load_sources, save_sources_to_toml};
use crate::loaders::packages::{get_installed_packages, save_packages_to_toml}; use crate::loaders::packages::{get_installed_packages, save_packages_to_toml};
use clap::Parser;
#[derive(Parser)]
struct Cli {
#[arg(long, required = true)]
main_option: String,
}
fn main() -> Result<(), Box<dyn std::error::Error>> { fn main() -> Result<(), Box<dyn std::error::Error>> {
let cli = Cli::parse();
let user_option = cli.main_option;
match user_option.as_str() {
"load" => sources_fn()?,
"sync" => packages_sync_fn()?,
_ => println!("Invalid option"),
}
Ok(())
}
fn sources_fn() -> Result<(), Box<dyn std::error::Error>>{
// Sources // Sources
let sources = load_sources("/etc/apt/sources.list")?; let sources = load_sources("/etc/apt/sources.list")?;
save_sources_to_toml(&sources, "sources.toml")?; save_sources_to_toml(&sources, "sources.toml")?;
println!("Saved sources to sources.toml"); println!("Saved sources to sources.toml");
Ok(())
}
fn packages_sync_fn() -> Result<(), Box<dyn std::error::Error>> {
// Packages // Packages
let packages = get_installed_packages()?; let packages = get_installed_packages()?;
save_packages_to_toml(&packages, "packages.toml")?; save_packages_to_toml(&packages, "packages.toml")?;
@ -17,4 +41,3 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
Ok(()) Ok(())
} }