67 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			67 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();
 | |
|         });
 | |
|     }
 | |
| }
 | 
