X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Fexternaltask.h;h=8127c75762459f9a4c73f1c532412a7567c45281;hb=c7efb9da9b070c345473c9d22a50b60c332f2132;hp=b23bb66728805e280359705ff61a6b2b1436b55f;hpb=e2dc7122774e5d8de07731f3abe15ec0a9ffa643;p=builder.git diff --git a/source/externaltask.h b/source/externaltask.h index b23bb66..8127c75 100644 --- a/source/externaltask.h +++ b/source/externaltask.h @@ -7,6 +7,11 @@ #include #include "task.h" +/** +Runs an external command. A zero exit status is translated to a SUCCESS status +for the task, and anything else is treated as an error. Output can optionally +be captured. +*/ class ExternalTask: public Task { public: @@ -17,8 +22,10 @@ public: IGNORE }; + typedef std::vector Arguments; + private: - std::vector argv; + Arguments argv; Msp::FS::Path work_dir; int pid; int exit_code; @@ -28,7 +35,11 @@ private: std::string output; public: - ExternalTask(const std::vector &, const Msp::FS::Path &); + /** Creates an ExternalTask with an argument array and an optional working + directory. The first element of the argument array should be the command + name. If the working directory is not specified, no chdir is done. */ + ExternalTask(const Arguments &, const Msp::FS::Path & = Msp::FS::Path()); + virtual ~ExternalTask(); virtual std::string get_command() const;