-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathcomposer-check.php
30 lines (29 loc) · 1.08 KB
/
composer-check.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
require 'vendor/autoload.php';
$composer = json_decode(file_get_contents('composer.json'), true);
$args = $_SERVER['argv'];
$args_str = implode(' ',$args);
$packages = $composer['require'];
$flog = false;
foreach ($packages as $package => $version) {
if(strpos($package,'/') && !is_dir(__DIR__.'/vendor/'.$package)){
$flog = true;
echo "\033[32m安装 {$package}:{$version}...\033[0m\n";
shell_exec("composer require {$package}:{$version} -vvv -n");
echo "\033[32m{$package}:{$version}安装完成!\033[0m\n";
}
}
if(!strpos($args_str,' --no-dev')){
$packages = $composer['require-dev'];
foreach ($packages as $package => $version) {
if(strpos($package,'/') && !is_dir(__DIR__.'/vendor/'.$package)){
$flog = true;
echo "\033[32m安装 {$package}:{$version}...\033[0m\n";
shell_exec("composer require --dev {$package}:{$version} -vvv -n");
echo "\033[32m{$package}:{$version}安装完成!\033[0m\n";
}
}
}
if(!$flog){
echo "\033[32m没有发现需要安装的包\033[0m\n";
}