X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fexternaltask.h;h=a5f10ec0b0c1486ce6b7b951d8dd10e668923cfb;hb=c8dfe708b5551818dad3f6cf3e86cc72fe684572;hp=8127c75762459f9a4c73f1c532412a7567c45281;hpb=0368a9c1972ff5fd6cd8984901ff0bdbd86afc9f;p=builder.git diff --git a/source/externaltask.h b/source/externaltask.h index 8127c75..a5f10ec 100644 --- a/source/externaltask.h +++ b/source/externaltask.h @@ -45,10 +45,18 @@ public: virtual std::string get_command() const; virtual void start(); virtual Status check(); + Status wait(); +private: + Status do_wait(bool); +public: void set_stdout(Destination); void set_stderr(Destination); const std::string &get_output() const { return output; } + + /** Executes a command and captures its output. Stderr is ignored, but if + the command exits with a nonzero status, an exception is thrown. */ + static std::string run_and_capture_output(const Arguments &, const Msp::FS::Path & = Msp::FS::Path()); }; #endif