5b59094fd5419defae8da3cedc275b7403c759bd
[phancap.git] / src / phancap / Executor.php
1 <?php
2 /**
3  * Part of phancap
4  *
5  * PHP version 5
6  *
7  * @category  Tools
8  * @package   Executor
9  * @author    Christian Weiske <cweiske@cweiske.de>
10  * @copyright 2014 Christian Weiske
11  * @license   http://www.gnu.org/licenses/agpl.html GNU AGPL v3
12  * @link      http://cweiske.de/phancap.htm
13  */
14 namespace phancap;
15
16 /**
17  * Run a shell command
18  *
19  * @category  Tools
20  * @package   Executor
21  * @author    Christian Weiske <cweiske@cweiske.de>
22  * @copyright 2014 Christian Weiske
23  * @license   http://www.gnu.org/licenses/agpl.html GNU AGPL v3
24  * @version   Release: @package_version@
25  * @link      http://cweiske.de/phancap.htm
26  */
27 class Executor
28 {
29     /**
30      * Run a shell command and check exit code.
31      *
32      * @param string $cmd Full command including parameters and options
33      *
34      * @return void
35      * @throws \Exception When the exit code is not 0
36      */
37     public static function run($cmd)
38     {
39         exec($cmd . ' 2>&1', $arOutput, $exitcode);
40         if ($exitcode != 0) {
41             //FIXME: do something with $arOutput
42             echo implode("\n", $arOutput) . "\n";
43             throw new \Exception('Error running cutycapt', $exitcode);
44         }
45     }
46 }
47 ?>