Comments, readme, bugfixes
This commit is contained in:
@ -52,7 +52,7 @@ class Application
|
||||
}
|
||||
if ($this->config->init) {
|
||||
if (!file_exists("composer.json")) {
|
||||
log_error("No composer.json in current directory");
|
||||
error_log("No composer.json in current directory");
|
||||
return 1;
|
||||
}
|
||||
$proj = json_decode(file_get_contents("composer.json"));
|
||||
|
@ -4,6 +4,7 @@ namespace MakePhar;
|
||||
|
||||
class PharBuilder
|
||||
{
|
||||
protected $tempFile;
|
||||
|
||||
protected $manifest;
|
||||
|
||||
@ -16,23 +17,34 @@ class PharBuilder
|
||||
$this->manifest = $manifest;
|
||||
}
|
||||
|
||||
/**
|
||||
* Collect files and prepare to build the .phar
|
||||
*
|
||||
*/
|
||||
public function prepare()
|
||||
{
|
||||
log_debug("Finding files to add...");
|
||||
$this->files = $this->manifest->findSourceFiles();
|
||||
log_debug("Found %d files", count($this->files));
|
||||
|
||||
$this->tempFile = "/tmp/".uniqid("phar").".phar";
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the .phar archive
|
||||
*
|
||||
*/
|
||||
public function build()
|
||||
{
|
||||
// Create the phar
|
||||
$phar = new \Phar("/tmp/output.phar");
|
||||
$phar = new \Phar($this->tempFile);
|
||||
$vo = posix_isatty(STDOUT);
|
||||
|
||||
// Add files
|
||||
log_debug("Adding files to phar archive...");
|
||||
$t = count($this->files); $i = 0; $lp = null;
|
||||
$phar->startBuffering();
|
||||
$size_tot = 0; $size_min = 0;
|
||||
foreach ($this->files as $file) {
|
||||
$i++;
|
||||
$tp = dirname($file->src);
|
||||
@ -41,7 +53,10 @@ class PharBuilder
|
||||
printf("\r\e[K%d/%d %s", $i, $t, $tp);
|
||||
}
|
||||
if (fnmatch("*.php",$file->src)) {
|
||||
$phar->addFromString($file->dest?:$file->src, php_strip_whitespace($file->src));
|
||||
$min = php_strip_whitespace($file->src);
|
||||
$size_tot += filesize($file->src);
|
||||
$size_min += strlen($min);
|
||||
$phar->addFromString($file->dest?:$file->src, $min);
|
||||
} else {
|
||||
$phar->addFile($file->dest?:$file->src, $file->src);
|
||||
}
|
||||
@ -49,6 +64,15 @@ class PharBuilder
|
||||
($vo) && printf("\r\e[K");
|
||||
$phar->stopBuffering();
|
||||
|
||||
$formatSize = function ($s) {
|
||||
$u = [ 'B', 'KB', 'MB', 'GB' ];
|
||||
while (count($u)>1 && ($s > 1024)) { $s /= 1024; array_shift($u); }
|
||||
return sprintf("%.2f%s", $s, array_shift($u));
|
||||
};
|
||||
$str_tot = $formatSize($size_tot);
|
||||
$str_min = $formatSize($size_min);
|
||||
log_debug("Size: {$str_tot}, Minified: {$str_min}");
|
||||
|
||||
// Create stub
|
||||
if ($this->manifest->getIsLibrary()) {
|
||||
log_debug("Creating library stub...");
|
||||
@ -78,6 +102,10 @@ class PharBuilder
|
||||
$phar = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Move the built .phar into its target location.
|
||||
*
|
||||
*/
|
||||
public function finalize()
|
||||
{
|
||||
$output = $this->manifest->getOutput();
|
||||
@ -86,7 +114,7 @@ class PharBuilder
|
||||
unlink($output);
|
||||
}
|
||||
log_debug("Writing %s", $output);
|
||||
rename("/tmp/output.phar", $output);
|
||||
rename($this->tempFile, $output);
|
||||
|
||||
if (!$this->manifest->getIsLibrary()) {
|
||||
chmod($output, 0777);
|
||||
|
Reference in New Issue
Block a user