diff --git a/src/Builder.php b/src/Builder.php index 5193619..7440186 100644 --- a/src/Builder.php +++ b/src/Builder.php @@ -26,6 +26,8 @@ class Builder protected $bins; + protected $dependencies = []; + private static $default_options = [ 'install' => false, ]; @@ -55,7 +57,19 @@ class Builder $json = file_get_contents($this->path."/composer.json"); - $composer = json_decode($json); + $composer = json_decode($json); + + if (isset($composer->require)) { + foreach ($composer->require as $package=>$constraint) { + if ($package == "php") { + $this->dependencies[$package] = $constraint; + print_info(" ! require php: %s", $constraint); + } elseif (strpos($package, "ext-") === 0) { + $this->dependencies[$package] = $constraint; + print_info(" ! require ext: %s %s", $package, $constraint); + } + } + } if (!isset($composer->bin) || !is_array($composer->bin)) { print_warn("No executable defined, building a library phar..."); @@ -159,10 +173,22 @@ class Builder $bins = (array)$bins; + $indexFile = "dependencies as $dep=>$constraint) { + if ($dep == "php") { + + } elseif (strpos($dep, "ext-") === 0) { + $ext = substr($dep, 4); + $depcheck.= 'if (!extension_loaded("' . $ext . '")) { @fwrite(STDERR, "Fatal: Missing required extension ' . $ext . '.\n"); exit(2); }' . PHP_EOL; + } + } + if (!$index && count($bins)==0) { - $indexFile = '1) { - $indexFile = 'createDefaultStub($index); $phar->setStub($stub);