//! Example demonstrating APT wrapper configuration options //! //! This example shows how to use the various configuration options //! available in the APT wrapper. use apt_wrapper::{AptTransaction, AptConfig, init}; fn main() -> Result<(), Box> { println!("=== APT Wrapper Configuration Example ==="); // Initialize init()?; println!("✓ APT wrapper initialized"); // Example 1: Default configuration println!("\n--- Example 1: Default Configuration ---"); let mut tx1 = AptTransaction::new()?; tx1.add_package("apt")?; println!("✓ Created transaction with default config"); println!(" Config: {:?}", tx1.config()); // Example 2: Custom configuration println!("\n--- Example 2: Custom Configuration ---"); let config = AptConfig { no_install_recommends: true, no_install_suggests: true, assume_yes: true, quiet: false, dry_run: true, }; let mut tx2 = AptTransaction::with_config(config)?; tx2.add_package("curl")?; println!("✓ Created transaction with custom config"); println!(" Config: {:?}", tx2.config()); // Example 3: Testing configuration println!("\n--- Example 3: Testing Configuration ---"); let mut tx3 = AptTransaction::for_testing()?; tx3.add_package("vim")?; println!("✓ Created transaction for testing"); println!(" Config: {:?}", tx3.config()); // Example 4: Runtime configuration changes println!("\n--- Example 4: Runtime Configuration Changes ---"); let mut tx4 = AptTransaction::new()?; tx4.add_package("git")?; // Enable dry run mode tx4.enable_dry_run(); println!("✓ Enabled dry run mode"); // Enable quiet mode tx4.enable_quiet(); println!("✓ Enabled quiet mode"); // Disable dry run mode tx4.disable_dry_run(); println!("✓ Disabled dry run mode"); println!(" Final config: {:?}", tx4.config()); // Example 5: Configuration validation println!("\n--- Example 5: Configuration Validation ---"); let mut tx5 = AptTransaction::new()?; tx5.add_package("apt")?; // Resolve dependencies (this will validate packages exist) tx5.resolve()?; println!("✓ Dependencies resolved successfully"); // Note: We don't actually commit in examples to avoid installing packages println!("\n=== Example completed ==="); println!("Note: Transactions were not committed to avoid installing packages"); Ok(()) }