19094c13f2b31270dbe387c626d9e70a3f89dd09
[pharext/pharext] / src / pharext / Task / PharRename.php
1 <?php
2
3 namespace pharext\Task;
4
5 use pharext\Exception;
6 use pharext\Task;
7
8 /**
9 * Rename the phar archive
10 */
11 class PharRename implements Task
12 {
13 /**
14 * @var string
15 */
16 private $phar;
17
18 /**
19 * @var string
20 */
21 private $dest;
22
23 /**
24 * @var string
25 */
26 private $name;
27
28 /**
29 * @param string $phar path to phar
30 * @param string $dest destination dir
31 * @param string $name package name
32 */
33 public function __construct($phar, $dest, $name) {
34 $this->phar = $phar;
35 $this->dest = $dest;
36 $this->name = $name;
37 }
38
39 /**
40 * @param bool $verbose
41 * @return string path to renamed phar
42 * @throws \pharext\Exception
43 */
44 public function run($verbose = false) {
45 $extension = substr(strstr($this->phar, "-pharext.phar"), 8);
46 $name = sprintf("%s/%s.ext%s", $this->dest, $this->name, $extension);
47
48 if (!rename($this->phar, $name)) {
49 throw new Exception;
50 }
51
52 return $name;
53 }
54 }