m/p/cmd: use predicates in RunCommand

This generalizes RunCommand by making it accept any completion
predicate function.

Change-Id: Ic6b911244aaecd16c01000050fca618a8c8e09d7
Reviewed-on: https://review.monogon.dev/c/monogon/+/846
Reviewed-by: Sergiusz Bazanski <serge@monogon.tech>
Tested-by: Jenkins CI
diff --git a/metropolis/installer/test/main.go b/metropolis/installer/test/main.go
index 2a03a75..6b5bbfd 100644
--- a/metropolis/installer/test/main.go
+++ b/metropolis/installer/test/main.go
@@ -69,7 +69,8 @@
 		"-no-reboot",
 	}
 	qemuArgs := append(defaultArgs, args...)
-	return cmd.RunCommand(ctx, "external/qemu/qemu-x86_64-softmmu", qemuArgs, expectedOutput)
+	pf := cmd.TerminateIfFound(expectedOutput)
+	return cmd.RunCommand(ctx, "external/qemu/qemu-x86_64-softmmu", qemuArgs, pf)
 }
 
 // runQemuWithInstaller runs the Metropolis Installer in a qemu, performing the