Skip to content

Commit f257d16

Browse files
committed
Replace yaml with regex to get sail services
1 parent 08b26a2 commit f257d16

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

src/Console/SailEnvCommand.php

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
namespace Jedymatt\LaravelSailEnv\Console;
44

55
use Laravel\Sail\Console\InstallCommand;
6-
use Symfony\Component\Yaml\Yaml;
76

87
class SailEnvCommand extends InstallCommand
98
{
@@ -68,12 +67,14 @@ public function handle()
6867

6968
protected function servicesFromDockerCompose(): array
7069
{
71-
$dockerCompose = Yaml::parseFile($this->laravel->basePath('docker-compose.yml'));
70+
$environment = file_get_contents($this->laravel->basePath('docker-compose.yml'));
7271

73-
$sailServices = array_filter($dockerCompose['services'], function ($service) {
74-
return in_array($service, $this->services);
75-
}, ARRAY_FILTER_USE_KEY);
72+
$regex = '/'.implode('|', array_map(function ($service) {
73+
return '(?<=\s)'.$service.'(?=:)'; // Match service name followed by ':' (e.g. mysql:) and preceded by whitespace
74+
}, $this->services)).'/';
7675

77-
return array_keys($sailServices);
76+
preg_match_all($regex, $environment, $matches);
77+
78+
return array_values($matches[0]);
7879
}
7980
}

0 commit comments

Comments
 (0)