diff --git a/src/discover/registry.rs b/src/discover/registry.rs index 03e606a5..dfd82308 100644 --- a/src/discover/registry.rs +++ b/src/discover/registry.rs @@ -1443,6 +1443,51 @@ mod tests { ); } + // --- docker-compose (legacy hyphenated CLI) --- + + #[test] + fn test_rewrite_docker_compose_legacy_ps() { + assert_eq!( + rewrite_command("docker-compose ps", &[]), + Some("rtk docker compose ps".into()) + ); + } + + #[test] + fn test_rewrite_docker_compose_legacy_logs() { + assert_eq!( + rewrite_command("docker-compose logs web", &[]), + Some("rtk docker compose logs web".into()) + ); + } + + #[test] + fn test_rewrite_docker_compose_legacy_logs_no_service() { + assert_eq!( + rewrite_command("docker-compose logs", &[]), + Some("rtk docker compose logs".into()) + ); + } + + #[test] + fn test_rewrite_docker_compose_legacy_build() { + assert_eq!( + rewrite_command("docker-compose build", &[]), + Some("rtk docker compose build".into()) + ); + } + + #[test] + fn test_rewrite_docker_compose_legacy_up_skipped() { + // unsupported subcommand — must not rewrite + assert_eq!(rewrite_command("docker-compose up -d", &[]), None); + } + + #[test] + fn test_rewrite_docker_compose_legacy_down_skipped() { + assert_eq!(rewrite_command("docker-compose down", &[]), None); + } + // --- AWS / psql (PR #216) --- #[test] diff --git a/src/discover/rules.rs b/src/discover/rules.rs index 32499e29..a2b628a1 100644 --- a/src/discover/rules.rs +++ b/src/discover/rules.rs @@ -31,6 +31,7 @@ pub const PATTERNS: &[&str] = &[ r"^(npx\s+|pnpm\s+)?playwright", r"^(npx\s+|pnpm\s+)?prisma", r"^docker\s+(ps|images|logs|run|exec|build|compose\s+(ps|logs|build))", + r"^docker-compose\s+(ps|logs|build)", r"^kubectl\s+(get|logs|describe|apply)", r"^tree(\s|$)", r"^diff\s+", @@ -242,6 +243,14 @@ pub const RULES: &[RtkRule] = &[ subcmd_savings: &[], subcmd_status: &[], }, + RtkRule { + rtk_cmd: "rtk docker compose", + rewrite_prefixes: &["docker-compose"], + category: "Infra", + savings_pct: 85.0, + subcmd_savings: &[], + subcmd_status: &[], + }, RtkRule { rtk_cmd: "rtk kubectl", rewrite_prefixes: &["kubectl"],