nitc :: ToolContext :: exec_and_check
Stops execution and prints errors if the program isn't available or didn't end correctly
# Executes a program while checking if it's available and if the execution ended correctly
#
# Stops execution and prints errors if the program isn't available or didn't end correctly
fun exec_and_check(args: Array[String], error: String)
do
info("+ {args.join(" ")}", 2)
var prog = args.first
args.remove_at 0
# Is the wanted program available?
var proc_which = new ProcessReader.from_a("which", [prog])
proc_which.wait
var res = proc_which.status
if res != 0 then
print_error "{error}: executable \"{prog}\" not found"
exit 1
end
# Execute the wanted program
var proc = new Process.from_a(prog, args)
proc.wait
res = proc.status
if res != 0 then
print_error "{error}: execution of \"{prog} {args.join(" ")}\" failed"
exit 1
end
end
src/toolcontext.nit:328,2--355,4