From 337e76964be2ed6724633ac477affc3a28426c97 Mon Sep 17 00:00:00 2001 From: Michael Wallner Date: Sat, 28 Mar 2015 13:57:46 +0100 Subject: [PATCH] consistent verbosity --- bin/pharext | Bin 65632 -> 67468 bytes src/pharext/ExecCmd.php | 12 +++++++---- src/pharext/Installer.php | 30 ++++++++++++++++----------- src/pharext/Packager.php | 5 ----- src/pharext/Task/Activate.php | 13 ++++++++++++ src/pharext/Task/BundleGenerator.php | 3 +++ src/pharext/Task/Cleanup.php | 3 +++ src/pharext/Task/Configure.php | 3 +++ src/pharext/Task/Extract.php | 3 +++ src/pharext/Task/GitClone.php | 3 +++ src/pharext/Task/Make.php | 9 ++++++++ src/pharext/Task/PeclFixup.php | 6 ++++++ src/pharext/Task/PharCompress.php | 3 +++ src/pharext/Task/PharRename.php | 4 ++++ src/pharext/Task/PharSign.php | 3 +++ src/pharext/Task/Phpize.php | 3 +++ src/pharext/Task/StreamFetch.php | 3 +++ 17 files changed, 85 insertions(+), 21 deletions(-) diff --git a/bin/pharext b/bin/pharext index ae7170f4e6375a515a61afeabeaab3a48b765168..539504e897e1036c493df128fe5651d608594bf6 100755 GIT binary patch delta 3236 zcmb_eeQ*=k5!cDGgKWn>f=w(e!jpWGB`gb1u^CdZ`A}@vfU)rhCBclNkCS~^zB_a$ za00?{C&2>=ZIVrBOrWHhI1m~pOyBsA(3B?qqJ?H!(rIa3CZ%a0ZJh-Ak(qYVCVlVS z$&pjs=8yh!EA8#>+x_it_uZ8TY>#}!cA78emgBkQ59Y!P9%oL@_c zdl$k9@7zN2t~<(EEZzHlx*PuNDuH}g0q-obSm+BXUrs!69=csF{*BuWC6!-%yL27A zf`ZKbHJioaz1F?}zV0c3A#WjneUV{F<+=|pbpS_R{LEF#tVeP!mdMjrqkt+(;IQj9 zzKA!hseH*o1=W7F zn>f(4sT^H=$D^>v9pKZZl1g;_-n*GoC?SUBluDf}Bzx*a<-9lUc^zJ@@bX=zlFIb$ z7v3dK0zYL&qVmUoc={JKFK4r)hZ2e`(om0>22_SRd}m;Dg^NFFhNAMwJIih*buVy= z(L|FpWF$~+8c=zE+utXMftRnDV`N2T*V66hV6?)|CrwK#%h1BNAS_h!Z|4}6R36y+ z<^__Khd*H|sr=2E=OwsEI*>0E^TlQeD*sXVxr^Wze7u%tgrIWdwdK!3yBo0%?6MHd zzTa|=5Tk-ACJ0leh7Sc;t83jnQ~sVDa=pTF8&lrtD&+4qaiDU}%8e@JRrzKysY!}V zaav8nQplmQoiS{W^!SrAAfi%7QpNOwUL8kk`r$VT+73EE*;^VN=nwn zB&tU>EAs7jO%Ll*6bagWgApYG=WFX4>~^A;;>Z^dCo~bc>g$oFCsjrB2}DYAUjVs# zWVhdsb`wK;Rh1AmV$yhN_^7sX9t);z&AdP!REr~ZFWVs0RRWWjYhm%q7s2}GY1~vl zln05cd*N)TDpwp-Q9ab$wG39j?=98IUq20*6!lb6Mgmpf=v~N;$6GlLUf=jIe5q|5 zHng|Ha~-Q-&L#zachhDLnmcdc(aP`H@GF-SMexf_bMdaJW-Clg6@T;nHY?tH<9s2m ziH+n!O>6;f?}8jYDTWhjSnu}<^yyy#*MCwC#hVM@n%E6zWjh|;63#FE#7gg%wCaYq zlo0)RD$>Z|p2=-icvUHZqm>1qb`|1P&s?%qPz;5gVltwbFfu?**i?d~9tU@)z@_oL z@pW8Pwz+9!H>`Z_P`?-*AkZU^hJwK$tVx&Pp66F`EjMw>_^gTQ(oWJ{;w8zZBk5ZJ z2`qEgEdp=c%mf{uk0*{lXX{l z#eYe%Jscef_t6~H{%}$p(rI~!(#yyXe*KgW^E(PSJn+>m-0&#4_z#WAe!o#T?AW;ZD$h zsX<(Wf7z#*CoDMfZMbz`X=Z@nrNepHvA4lM8&wLCgeVggS?=VAk6D-i5LS!fXg^tF*)3xLN^(pbVhqn3 z8)LvEtv4weT=E&aCUd%dx-vTV!^YreGlNAn54We0NH3t>tQRv~XYnLekQ-{yr==pK z8sl)%QCgs%+*(V>rDfF2x>`oME6}yGRbc0CBkn9;P%b*4cTcm2nWghd0?e+uLDLm= zZ7LoY={@LU!Sdm~J*z7+1Tps6O_w8dq@N@+c?OmmF^cA=4rCu zw!_KseB6HU=eGarCc@}(%t6m&0d$e?p`OWn{4MFRTzIUq43~dCms`$0Qjm6^)=Rcz zFa0LzB@^ZIqafjzd52ZI$v^VJBn?rcghK8&9~|Aj5x$n5Q)Z45#h3DpMnFMAO=w(k r6j~~)@YqM+;GDmDXX2JaTHTJRz-S{{xg~yzyYf5oHE3yG+q(AO4aoEc delta 1711 zcmZ{kdrVVT9LIb5Kni7EY(X9>x9x3df!4>O+axe6n>cktMMe}AYq@Q2>?`dp5Dj5u zZpLH-vtLYS*yc7zHlvy7(K!tfl_7Czz{j!-AJaIPfg$QPm%${v=iWyBLvM2PNxuD_ z-|u(6=iGkKqP+QzvYpCCFX7bett$A;oUQpDr&TPF$z*3rhL1qI-YyEKlroulaCsIi z*XK|dQ)DvYB3wFQYXrBMrh1Sh67KlVb{iV?da5!*5(%k~Z)%~;V5Y_4!st|;2c{6qhLMGfWCQ~hOC*hY%c6y+i$$|rnh8j(fN)Uc>vUCLO zjGh`7x{|FDo^m_R!#T!E>4Y$dNLW;pXonV~nbO2X!sM~vDj{StQm5j}3AgOOvmN%B zEEE%OM0j9Z>t0Zra;b*6lWkPB?{LB&`H`5XJL`ch}nNktL)^ENj6ZWZti?mietl#MZG4)g-gh9S$ExcziiNZQz zz;g9=1Veh7YN4ePgfGu_I3Pzaxm-f;iuZfBK)2Z>)*CU~L{87O#$qaDhm1Zg{&#bi z5~oy*B*@nW@K{w7qUa)eR$-D_9pRlk=b{;it(yzU>sO{$F|Pc4+C;m8(Ex8@B32w) ze@qD}6_aAC6=*{342kY31OCxh6C{Drg@5nBsE-|tHlkzN$N>1AL|T6Lzs(B zLq=XK!Ufzxi(zFn5D*H`LZIAcmbTmNYXb&rAvD#tn4jfy1p{u*6AeFQ)zt0PKg;TO zZhFdfux^$0xh^gsBEbh67@qZqtn?NkR|^#RrY2f##o=hcVuf~p2FCSo zqogN=;aCR)iJR}^yte&{WG3X~y~2TzEcE;4Vg25YBn>0E-JFjt1av|Riw~t>?O_Ii zwJi&u-tAH0-H%#Ts)j@Gz0&M73;ri}mgioHCjc`uaDmk3ILE%+>e`u2E5vrhWl<9R8Tpv7`_^qo-Pbt>kL=dMExNPQ_F@o1|zHx@#mfCaAu$w z6oa}{A@l;8AtPDI{ZThS?%+U`sYniGyT%ZIPXq51AsQWD?mS&g9g ztPdhT?xCc()oRX7TbMA%!JKo)asK5d1mjnZ<0+#0DJ2*$2A;?i7K0Z9})j+D#svBuyFh4FKc?%^VqcX`Q0472_q z&(e`#H0)w&QzU*TgmffH%m)tcO2hM;7s+Qn`+Ioax+HKkYjMktGI_Fe3B)f69M|;t x>PHte`0Mf&=xDbJ?L*VvMV`FF@()Y${%G8G_t!NK-&$TfA^dm9N*BJl@PEQkV|4%k diff --git a/src/pharext/ExecCmd.php b/src/pharext/ExecCmd.php index 7e657f3..5a6ee81 100644 --- a/src/pharext/ExecCmd.php +++ b/src/pharext/ExecCmd.php @@ -94,7 +94,7 @@ class ExecCmd print $this->progress($data, 0); } else { if ($verbose) { - printf("%s\n", $data); + printf("%s", $data); } $this->output .= $data; } @@ -112,14 +112,18 @@ class ExecCmd * @return string */ private function progress($string, $flags) { - static $c = 0; - static $s = ["\\","|","/","-"]; + static $counter = 0; + static $symbols = ["\\","|","/","-"]; $this->output .= $string; + + if (false !== strpos($string, "\n")) { + ++$counter; + } return $flags & PHP_OUTPUT_HANDLER_FINAL ? " \r" - : sprintf(" %s\r", $s[$c++ % count($s)]); + : sprintf(" %s\r", $symbols[$counter % 4]); } /** diff --git a/src/pharext/Installer.php b/src/pharext/Installer.php index 60ca226..a90eb28 100644 --- a/src/pharext/Installer.php +++ b/src/pharext/Installer.php @@ -15,6 +15,12 @@ class Installer implements Command { use CliCommand; + /** + * Cleanups + * @var array + */ + private $cleanup = []; + /** * Create the command */ @@ -53,9 +59,19 @@ class Installer implements Command ]); } + /** + * Perform cleaniup + */ + function __destruct() { + foreach ($this->cleanup as $cleanup) { + $cleanup->run(); + } + } + private function extract(Phar $phar) { - $this->debug("Extracting %s ...\n", basename($phar->getPath())); - return (new Task\Extract($phar))->run($this->verbosity()); + $temp = (new Task\Extract($phar))->run($this->verbosity()); + $this->cleanup[] = new Task\Cleanup($temp); + return $temp; } private function hooks(SplObjectStorage $phars) { @@ -162,7 +178,6 @@ class Installer implements Command $this->info("Installing %s ...\n", basename($phar->getPath())); $this->install($list[$phar]); $this->activate($list[$phar]); - $this->cleanup($list[$phar]); $this->info("Successfully installed %s!\n", basename($phar->getPath())); } } catch (\Exception $e) { @@ -176,31 +191,23 @@ class Installer implements Command */ private function install($temp) { // phpize - $this->info("Running phpize ...\n"); $phpize = new Task\Phpize($temp, $this->args->prefix, $this->args->{"common-name"}); $phpize->run($this->verbosity()); // configure - $this->info("Running configure ...\n"); $configure = new Task\Configure($temp, $this->args->configure, $this->args->prefix, $this->args{"common-name"}); $configure->run($this->verbosity()); // make - $this->info("Running make ...\n"); $make = new Task\Make($temp); $make->run($this->verbosity()); // install - $this->info("Running make install ...\n"); $sudo = isset($this->args->sudo) ? $this->args->sudo : null; $install = new Task\Make($temp, ["install"], $sudo); $install->run($this->verbosity()); } - private function cleanup($temp) { - (new Task\Cleanup($temp))->run(); - } - private function activate($temp) { if ($this->args->ini) { $files = [realpath($this->args->ini)]; @@ -212,7 +219,6 @@ class Installer implements Command $sudo = isset($this->args->sudo) ? $this->args->sudo : null; $type = $this->metadata("type") ?: "extension"; - $this->info("Running INI activation ...\n"); $activate = new Task\Activate($temp, $files, $type, $this->args->prefix, $this->args{"common-name"}, $sudo); if (!$activate->run($this->verbosity())) { $this->info("Extension already activated ...\n"); diff --git a/src/pharext/Packager.php b/src/pharext/Packager.php index 9acb5eb..f5ccfb8 100644 --- a/src/pharext/Packager.php +++ b/src/pharext/Packager.php @@ -141,8 +141,6 @@ class Packager implements Command * @return string local source */ private function download($source) { - $this->info("Fetching remote source %s ...\n", $source); - if ($this->args->git) { $task = new Task\GitClone($source); } else { @@ -167,8 +165,6 @@ class Packager implements Command * @return string extracted directory */ private function extract($source) { - $this->debug("Extracting %s ...\n", $source); - $task = new Task\Extract($source); $dest = $task->run($this->verbosity()); @@ -192,7 +188,6 @@ class Packager implements Command $this->cleanup[] = new Task\Cleanup($source); if ($this->args->pecl) { - $this->debug("Sanitizing PECL dir ...\n"); $source = (new Task\PeclFixup($source))->run($this->verbosity()); } } diff --git a/src/pharext/Task/Activate.php b/src/pharext/Task/Activate.php index 1bbd9a8..3d7e05f 100644 --- a/src/pharext/Task/Activate.php +++ b/src/pharext/Task/Activate.php @@ -65,6 +65,9 @@ class Activate implements Task * @return boolean false, if extension was already activated */ public function run($verbose = false) { + if ($verbose !== false) { + printf("Running INI activation ...\n"); + } $extension = basename(current(glob("{$this->cwd}/modules/*.so"))); if ($this->type === "zend_extension") { @@ -74,6 +77,9 @@ class Activate implements Task } foreach ($this->inis as $file) { + if ($verbose) { + printf("Checking %s ...\n", $file); + } $temp = new Tempfile("phpini"); foreach (file($file) as $line) { if (preg_match("/^\s*{$this->type}\s*=\s*[\"']?{$pattern}[\"']?\s*(;.*)?\$/", $line)) { @@ -84,6 +90,9 @@ class Activate implements Task } /* not found; append to last processed file, which is the main by default */ + if ($verbose) { + printf("Activating in %s ...\n", $file); + } fprintf($temp->getStream(), $this->type . "=%s\n", $extension); $temp->closeStream(); @@ -112,6 +121,10 @@ class Activate implements Task $cmd->setSu($this->sudo); } $cmd->run([$path, $file]); + + if ($verbose) { + printf("Replaced %s ...\n", $file); + } return true; } diff --git a/src/pharext/Task/BundleGenerator.php b/src/pharext/Task/BundleGenerator.php index aabf9c8..28af627 100644 --- a/src/pharext/Task/BundleGenerator.php +++ b/src/pharext/Task/BundleGenerator.php @@ -17,6 +17,9 @@ class BundleGenerator implements Task * @return Generator */ public function run($verbose = false) { + if ($verbose) { + printf("Packaging pharext ... \n"); + } $rdi = new RecursiveDirectoryIterator(dirname(dirname(__DIR__))); $rii = new RecursiveIteratorIterator($rdi); for ($rii->rewind(); $rii->valid(); $rii->next()) { diff --git a/src/pharext/Task/Cleanup.php b/src/pharext/Task/Cleanup.php index c2cfefa..3684806 100644 --- a/src/pharext/Task/Cleanup.php +++ b/src/pharext/Task/Cleanup.php @@ -26,6 +26,9 @@ class Cleanup implements Task * @param bool $verbose */ public function run($verbose = false) { + if ($verbose) { + printf("Cleaning up %s ...\n", $this->rm); + } if ($this->rm instanceof Tempfile) { unset($this->rm); } elseif (is_dir($this->rm)) { diff --git a/src/pharext/Task/Configure.php b/src/pharext/Task/Configure.php index 3effbfb..28957e9 100644 --- a/src/pharext/Task/Configure.php +++ b/src/pharext/Task/Configure.php @@ -40,6 +40,9 @@ class Configure implements Task } public function run($verbose = false) { + if ($verbose !== false) { + printf("Running ./configure ...\n"); + } $pwd = getcwd(); if (!chdir($this->cwd)) { throw new Exception; diff --git a/src/pharext/Task/Extract.php b/src/pharext/Task/Extract.php index b2f954f..d68b426 100644 --- a/src/pharext/Task/Extract.php +++ b/src/pharext/Task/Extract.php @@ -34,6 +34,9 @@ class Extract implements Task * @return \pharext\Tempdir */ public function run($verbose = false) { + if ($verbose) { + printf("Extracting %s ...\n", basename($this->source->getPath())); + } $dest = new Tempdir("extract"); $this->source->extractTo($dest); return $dest; diff --git a/src/pharext/Task/GitClone.php b/src/pharext/Task/GitClone.php index 709a34a..7b84ca1 100644 --- a/src/pharext/Task/GitClone.php +++ b/src/pharext/Task/GitClone.php @@ -28,6 +28,9 @@ class GitClone implements Task * @return \pharext\Tempdir */ public function run($verbose = false) { + if ($verbose !== false) { + printf("Fetching %s ...\n", $this->source); + } $local = new Tempdir("gitclone"); $cmd = new ExecCmd("git", $verbose); $cmd->run(["clone", $this->source, $local]); diff --git a/src/pharext/Task/Make.php b/src/pharext/Task/Make.php index 9e71565..61dbf00 100644 --- a/src/pharext/Task/Make.php +++ b/src/pharext/Task/Make.php @@ -44,6 +44,15 @@ class Make implements Task * @throws \pharext\Exception */ public function run($verbose = false) { + if ($verbose !== false) { + printf("Running make"); + if ($this->args) { + foreach ($this->args as $arg) { + printf(" %s", $arg); + } + } + printf(" ...\n"); + } $pwd = getcwd(); if (!chdir($this->cwd)) { throw new Exception; diff --git a/src/pharext/Task/PeclFixup.php b/src/pharext/Task/PeclFixup.php index 08a1d94..b237771 100644 --- a/src/pharext/Task/PeclFixup.php +++ b/src/pharext/Task/PeclFixup.php @@ -28,6 +28,9 @@ class PeclFixup implements Task * @throws \pahrext\Exception */ public function run($verbose = false) { + if ($verbose !== false) { + printf("Sanitizing PECL dir ...\n"); + } $dirs = glob("{$this->source}/*", GLOB_ONLYDIR); $files = array_diff(glob("{$this->source}/*"), $dirs); @@ -38,6 +41,9 @@ class PeclFixup implements Task $dest = current($dirs); foreach ($files as $file) { + if ($verbose) { + printf("Moving %s into %s ...\n", basename($file), basename($dest)); + } if (!rename($file, "$dest/" . basename($file))) { throw new Exception; } diff --git a/src/pharext/Task/PharCompress.php b/src/pharext/Task/PharCompress.php index d090e28..ea0607f 100644 --- a/src/pharext/Task/PharCompress.php +++ b/src/pharext/Task/PharCompress.php @@ -55,6 +55,9 @@ class PharCompress implements Task * @return string */ public function run($verbose = false) { + if ($verbose) { + printf("Compressing %s ...\n", basename($this->package->getPath())); + } $phar = $this->package->compress($this->encoding); $meta = $phar->getMetadata(); if (isset($meta["stub"])) { diff --git a/src/pharext/Task/PharRename.php b/src/pharext/Task/PharRename.php index 19094c1..dc1bc4b 100644 --- a/src/pharext/Task/PharRename.php +++ b/src/pharext/Task/PharRename.php @@ -44,6 +44,10 @@ class PharRename implements Task public function run($verbose = false) { $extension = substr(strstr($this->phar, "-pharext.phar"), 8); $name = sprintf("%s/%s.ext%s", $this->dest, $this->name, $extension); + + if ($verbose) { + printf("Renaming %s to %s ...\n", basename($this->phar), basename($name)); + } if (!rename($this->phar, $name)) { throw new Exception; diff --git a/src/pharext/Task/PharSign.php b/src/pharext/Task/PharSign.php index 739c587..8fa1e46 100644 --- a/src/pharext/Task/PharSign.php +++ b/src/pharext/Task/PharSign.php @@ -42,6 +42,9 @@ class PharSign implements Task * @return \pharext\Openssl\PrivateKey */ public function run($verbose = false) { + if ($verbose) { + printf("Signing %s ...\n", basename($this->phar->getPath())); + } $this->pkey->sign($this->phar); return $this->pkey; } diff --git a/src/pharext/Task/Phpize.php b/src/pharext/Task/Phpize.php index ab70534..a1da2e7 100644 --- a/src/pharext/Task/Phpize.php +++ b/src/pharext/Task/Phpize.php @@ -41,6 +41,9 @@ class Phpize implements Task * @throws \pharext\Exception */ public function run($verbose = false) { + if ($verbose !== false) { + printf("Running %s ...\n", $this->phpize); + } $pwd = getcwd(); if (!chdir($this->cwd)) { throw new Exception; diff --git a/src/pharext/Task/StreamFetch.php b/src/pharext/Task/StreamFetch.php index 4f090ef..3b1fc29 100644 --- a/src/pharext/Task/StreamFetch.php +++ b/src/pharext/Task/StreamFetch.php @@ -55,6 +55,9 @@ class StreamFetch implements Task * @throws \pharext\Exception */ public function run($verbose = false) { + if ($verbose !== false) { + printf("Fetching %s ...\n", $this->source); + } $context = $this->createStreamContext(); if (!$remote = fopen($this->source, "r", false, $context)) { -- 2.30.2