advanced_usage/
advanced_usage.rs1use composerize_np::{composerize, get_service_name};
3
4fn main() {
5 let docker_command = "docker run -d -p 8080:80 --name my-app nginx:alpine";
7
8 let image = "nginx:alpine";
10 let service_name = get_service_name(image);
11 println!("Service name extracted: {}", service_name);
12
13 println!("\n{}\n", "=".repeat(50));
14
15 let formats = vec![
17 ("latest", "Latest (no version)"),
18 ("v3x", "Docker Compose v3.x"),
19 ("v2x", "Docker Compose v2.x"),
20 ];
21
22 for (format, description) in formats {
23 println!("=== {} ===", description);
24
25 match composerize(docker_command, "", format, 2) {
26 Ok(yaml) => {
27 let lines: Vec<&str> = yaml.lines().take(5).collect();
29 println!("{}", lines.join("\n"));
30 println!("...\n");
31 }
32 Err(e) => eprintln!("Error: {}", e),
33 }
34 }
35
36 println!("{}\n", "=".repeat(50));
37
38 println!("=== Different Indentation ===");
40
41 for indent in [2, 4] {
42 println!("\nIndent: {} spaces", indent);
43 match composerize("docker run -p 80:80 nginx", "", "latest", indent) {
44 Ok(yaml) => {
45 let lines: Vec<&str> = yaml.lines().take(4).collect();
46 println!("{}", lines.join("\n"));
47 }
48 Err(e) => eprintln!("Error: {}", e),
49 }
50 }
51}