feat(matilda): matilda-apply — puente del plan a la ejecución
Traduce un Plan de reconciliación a ApplySteps concretos: por cada acción, los archivos a escribir en el servidor y los comandos a correr. Contenedores → docker rm/run; vhosts → archivo nginx + reload; hosts → sin pasos (son destino de conexión, no algo a aplicar). steps_to_script() emite un script bash único con heredocs. Sigue agnóstico de transporte — ejecutar los pasos (local, SSH o vía matilda-ghost) es la capa de I/O. La demo CLI ahora imprime el script. 6 tests; matilda llega de la declaración al script ejecutable. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -85,6 +85,14 @@ fn main() {
|
||||
);
|
||||
}
|
||||
|
||||
rule("script de aplicación (lo que correría en el servidor)");
|
||||
let steps = matilda_apply::plan_to_steps(&p, &desired);
|
||||
if steps.is_empty() {
|
||||
println!(" nada que aplicar.");
|
||||
} else {
|
||||
print!("{}", matilda_apply::steps_to_script(&steps));
|
||||
}
|
||||
|
||||
let broken = desired.broken_vhosts();
|
||||
rule("consistencia");
|
||||
if broken.is_empty() {
|
||||
|
||||
Reference in New Issue
Block a user