fix normal/verbose/quiet output
[pharext/pharext] / src / pharext / Task / PharSign.php
1 <?php
2
3 namespace pharext\Task;
4
5 use pharext\Openssl;
6 use pharext\Task;
7
8 use Phar;
9
10 /**
11 * Sign the phar with a private key
12 */
13 class PharSign implements Task
14 {
15 /**
16 * @var Phar
17 */
18 private $phar;
19
20 /**
21 * @var \pharext\Openssl\PrivateKey
22 */
23 private $pkey;
24
25 /**
26 *
27 * @param mixed $phar phar instance or path to phar
28 * @param string $pkey path to private key
29 * @param string $pass password for the private key
30 */
31 public function __construct($phar, $pkey, $pass) {
32 if ($phar instanceof Phar || $phar instanceof PharData) {
33 $this->phar = $phar;
34 } else {
35 $this->phar = new Phar($phar);
36 }
37 $this->pkey = new Openssl\PrivateKey($pkey, $pass);
38 }
39
40 /**
41 * @param bool $verbose
42 * @return \pharext\Openssl\PrivateKey
43 */
44 public function run($verbose = false) {
45 if ($verbose !== false) {
46 printf("Signing %s ...\n", basename($this->phar->getPath()));
47 }
48 $this->pkey->sign($this->phar);
49 return $this->pkey;
50 }
51 }