diff --git a/Shell/Builtin.cpp b/Shell/Builtin.cpp index 4be6e4ff4f..5a3928fde9 100644 --- a/Shell/Builtin.cpp +++ b/Shell/Builtin.cpp @@ -654,15 +654,18 @@ int Shell::builtin_time(int argc, const char** argv) if (!parser.parse(argc, const_cast(argv), false)) return 1; - StringBuilder builder; - builder.join(' ', args); + AST::Command command; + for (auto& arg : args) + command.argv.append(arg); Core::ElapsedTimer timer; timer.start(); - // TODO: Exit code - run_command(builder.string_view()); + auto job = run_command(command); + if (!job) + return 1; + block_on_job(job); fprintf(stderr, "Time: %d ms\n", timer.elapsed()); - return 0; + return job->exit_code(); } int Shell::builtin_umask(int argc, const char** argv)