puh, fixes

This commit is contained in:
Andras Bacsai
2023-09-26 14:45:52 +02:00
parent 03c9793d11
commit fabb97330a
32 changed files with 386 additions and 127 deletions

View File

@@ -69,7 +69,12 @@ class ProjectController extends Controller
if ($type->startsWith('one-click-service-')) {
$oneClickServiceName = $type->after('one-click-service-')->value();
$oneClickService = data_get($services, "$oneClickServiceName.compose");
$oneClickDotEnvs = collect(data_get($services, "$oneClickServiceName.envs", []));
$oneClickDotEnvs = data_get($services, "$oneClickServiceName.envs", null);
$oneClickRequiredFqdn = data_get($services, "$oneClickServiceName.generateFqdn", []);
$oneClickRequiredFqdn = collect($oneClickRequiredFqdn);
if ($oneClickDotEnvs) {
$oneClickDotEnvs = Str::of(base64_decode($oneClickDotEnvs))->split('/\r\n|\r|\n/');
}
if ($oneClickService) {
$service = Service::create([
'name' => "$oneClickServiceName-" . Str::random(10),
@@ -77,18 +82,37 @@ class ProjectController extends Controller
'environment_id' => $environment->id,
'server_id' => (int) $server_id,
]);
if ($oneClickDotEnvs->count() > 0) {
$oneClickDotEnvs->each(function ($value, $key) use ($service) {
$service->name = "$oneClickServiceName-" . $service->uuid;
$service->save();
if ($oneClickDotEnvs && $oneClickDotEnvs->count() > 0) {
$oneClickDotEnvs->each(function ($value) use ($service) {
$key = Str::before($value, '=');
$value = Str::of(Str::after($value, '='));
if ($value->contains('SERVICE_USER')) {
$value = Str::of(Str::random(10));
}
if ($value->contains('SERVICE_PASSWORD')) {
$value = Str::of(Str::password(symbols: false));
}
if ($value->contains('SERVICE_BASE64')) {
$length = Str::of($value)->after('SERVICE_BASE64_')->beforeLast('_')->value();
if (is_numeric($length)) {
$length = (int) $length;
} else {
$length = 1;
}
$value = Str::of(base64_encode(Str::password(length: $length, symbols: false)));
}
EnvironmentVariable::create([
'key' => $key,
'value' => $value,
'value' => $value->value(),
'service_id' => $service->id,
'is_build_time' => false,
'is_preview' => false,
]);
});
}
$service->parse(isNew: true);
$service->parse(isNew: true, requiredFqdns: $oneClickRequiredFqdn);
return redirect()->route('project.service', [
'service_uuid' => $service->uuid,