66 lines
2.5 KiB
PHP
66 lines
2.5 KiB
PHP
<?php
|
|
|
|
use Pterodactyl\Models\ServiceOption;
|
|
use Illuminate\Support\Facades\Schema;
|
|
use Illuminate\Database\Schema\Blueprint;
|
|
use Illuminate\Database\Migrations\Migration;
|
|
|
|
class DeleteServiceExecutableOption extends Migration
|
|
{
|
|
/**
|
|
* Run the migrations.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function up()
|
|
{
|
|
DB::transaction(function () {
|
|
// Attempt to fix any startup commands for servers
|
|
// that we possibly can. Also set new containers.
|
|
foreach (ServiceOption::with('servers')->get() as $option) {
|
|
$option->servers->each(function ($s) use ($option) {
|
|
$prepend = $option->display_executable;
|
|
$prepend = ($prepend === './ShooterGameServer') ? './ShooterGame/Binaries/Linux/ShooterGameServer' : $prepend;
|
|
$prepend = ($prepend === 'TerrariaServer.exe') ? 'mono TerrariaServer.exe' : $prepend;
|
|
|
|
$s->startup = $prepend . ' ' . $s->startup;
|
|
|
|
$container = $s->container;
|
|
if (starts_with($container, 'quay.io/pterodactyl/minecraft')) {
|
|
$s->container = 'quay.io/pterodactyl/core:java';
|
|
} elseif (starts_with($container, 'quay.io/pterodactyl/srcds')) {
|
|
$s->container = 'quay.io/pterodactyl/core:source';
|
|
} elseif (starts_with($container, 'quay.io/pterodactyl/voice')) {
|
|
$s->container = 'quay.io/pterodactyl/core:glibc';
|
|
} elseif (starts_with($container, 'quay.io/pterodactyl/terraria')) {
|
|
$s->container = 'quay.io/pterodactyl/core:mono'
|
|
}
|
|
|
|
$s->save();
|
|
});
|
|
}
|
|
|
|
Schema::table('services', function (Blueprint $table) {
|
|
$table->renameColumn('file', 'folder');
|
|
$table->dropColumn('executable');
|
|
$table->text('description')->nullable()->change();
|
|
$table->text('startup')->nullable()->change();
|
|
});
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Reverse the migrations.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function down()
|
|
{
|
|
Schema::table('services', function (Blueprint $table) {
|
|
$table->string('executable')->after('folder');
|
|
$table->renameColumn('folder', 'file');
|
|
$table->text('description')->nullable(false)->change();
|
|
$table->text('startup')->nullable(false)->change();
|
|
});
|
|
}
|
|
}
|