. * * This software is licensed under the terms of the MIT license. * https://opensource.org/licenses/MIT */ namespace Pterodactyl\Http\Controllers\Daemon; use Illuminate\Http\Request; use Pterodactyl\Models\Server; use Pterodactyl\Http\Controllers\Controller; class OptionController extends Controller { public function details(Request $request, $server) { $server = Server::with('allocation', 'option', 'variables.variable')->where('uuid', $server)->firstOrFail(); $environment = $server->variables->map(function ($item) { return sprintf('%s=%s', $item->variable->env_variable, $item->variable_value); }); $mergeInto = [ 'STARTUP=' . $server->startup, 'SERVER_MEMORY=' . $server->memory, 'SERVER_IP=' . $server->allocation->ip, 'SERVER_PORT=' . $server->allocation->port, ]; if ($environment->count() === 0) { $environment = collect($mergeInto); } return response()->json([ 'scripts' => [ 'install' => (! $server->option->copy_script_install) ? null : str_replace(["\r\n", "\n", "\r"], "\n", $server->option->copy_script_install), 'privileged' => $server->option->script_is_privileged, ], 'config' => [ 'container' => $server->option->copy_script_container, 'entry' => $server->option->copy_script_entry, ], 'env' => $environment->toArray(), ]); } }