consistent verbosity
[pharext/pharext] / src / pharext / Task / Phpize.php
1 <?php
2
3 namespace pharext\Task;
4
5 use pharext\Exception;
6 use pharext\ExecCmd;
7 use pharext\Task;
8
9 /**
10 * Run phpize in the extension source directory
11 */
12 class Phpize implements Task
13 {
14 /**
15 * @var string
16 */
17 private $phpize;
18
19 /**
20 *
21 * @var string
22 */
23 private $cwd;
24
25 /**
26 * @param string $cwd working directory
27 * @param string $prefix install prefix, e.g. /usr/local
28 * @param string $common_name PHP program common name, e.g. php5
29 */
30 public function __construct($cwd, $prefix = null, $common_name = "php") {
31 $this->cwd = $cwd;
32 $cmd = $common_name . "ize";
33 if (isset($prefix)) {
34 $cmd = $prefix . "/bin/" . $cmd;
35 }
36 $this->phpize = $cmd;
37 }
38
39 /**
40 * @param bool $verbose
41 * @throws \pharext\Exception
42 */
43 public function run($verbose = false) {
44 if ($verbose !== false) {
45 printf("Running %s ...\n", $this->phpize);
46 }
47 $pwd = getcwd();
48 if (!chdir($this->cwd)) {
49 throw new Exception;
50 }
51 try {
52 $cmd = new ExecCmd($this->phpize, $verbose);
53 $cmd->run();
54 } finally {
55 chdir($pwd);
56 }
57 }
58 }