batch_processing/
batch_processing.rs

1/// Example of batch processing multiple docker commands
2use composerize_np::composerize;
3use std::fs;
4
5fn main() {
6    // Multiple docker commands to convert
7    let commands = vec![
8        ("nginx", "docker run -d -p 80:80 nginx"),
9        ("redis", "docker run -d -p 6379:6379 redis:alpine"),
10        ("postgres", "docker run -d -p 5432:5432 -e POSTGRES_PASSWORD=secret postgres:14"),
11        ("mongodb", "docker run -d -p 27017:27017 -v mongo-data:/data/db mongo:latest"),
12    ];
13
14    println!("Converting {} docker commands...\n", commands.len());
15
16    for (name, command) in commands {
17        match composerize(command, "", "latest", 2) {
18            Ok(yaml) => {
19                let filename = format!("docker-compose-{}.yml", name);
20                
21                // Save to file
22                if let Err(e) = fs::write(&filename, &yaml) {
23                    eprintln!("Failed to write {}: {}", filename, e);
24                } else {
25                    println!("✓ Created: {}", filename);
26                }
27            }
28            Err(e) => {
29                eprintln!("✗ Failed to convert {}: {}", name, e);
30            }
31        }
32    }
33
34    println!("\nDone! Check the generated docker-compose-*.yml files.");
35}