fixed database seeder, remove dependency on form.php
This commit is contained in:
@@ -4,9 +4,9 @@ namespace Database\Seeders;
|
|||||||
|
|
||||||
use App\Models\Server;
|
use App\Models\Server;
|
||||||
use Illuminate\Database\Seeder;
|
use Illuminate\Database\Seeder;
|
||||||
use App\Livewire\Server\Form;
|
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
|
|
||||||
|
|
||||||
class ServerTimezoneSeeder extends Seeder
|
class ServerTimezoneSeeder extends Seeder
|
||||||
{
|
{
|
||||||
public function run(): void
|
public function run(): void
|
||||||
@@ -17,22 +17,42 @@ class ServerTimezoneSeeder extends Seeder
|
|||||||
$query->whereNull('server_timezone')->orWhere('server_timezone', '');
|
$query->whereNull('server_timezone')->orWhere('server_timezone', '');
|
||||||
})->each(function ($server) use ($defaultTimezone) {
|
})->each(function ($server) use ($defaultTimezone) {
|
||||||
DB::transaction(function () use ($server, $defaultTimezone) {
|
DB::transaction(function () use ($server, $defaultTimezone) {
|
||||||
$server->settings->server_timezone = $defaultTimezone;
|
$this->updateServerTimezone($server, $defaultTimezone);
|
||||||
$server->settings->save();
|
|
||||||
|
|
||||||
$formComponent = new Form();
|
|
||||||
$formComponent->server = $server;
|
|
||||||
$formComponent->updateServerTimezone($defaultTimezone);
|
|
||||||
|
|
||||||
// Refresh the server settings to ensure we have the latest data
|
|
||||||
$server->settings->refresh();
|
|
||||||
|
|
||||||
// Double-check and set the timezone if it's still not set
|
|
||||||
if (!$server->settings->server_timezone) {
|
|
||||||
$server->settings->server_timezone = $defaultTimezone;
|
|
||||||
$server->settings->save();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function updateServerTimezone($server, $desired_timezone)
|
||||||
|
{
|
||||||
|
$commands = [
|
||||||
|
"if command -v timedatectl > /dev/null 2>&1 && pidof systemd > /dev/null; then",
|
||||||
|
" timedatectl set-timezone " . escapeshellarg($desired_timezone),
|
||||||
|
"elif [ -f /etc/timezone ]; then",
|
||||||
|
" echo " . escapeshellarg($desired_timezone) . " > /etc/timezone",
|
||||||
|
" rm -f /etc/localtime",
|
||||||
|
" ln -sf /usr/share/zoneinfo/" . escapeshellarg($desired_timezone) . " /etc/localtime",
|
||||||
|
"elif [ -f /etc/localtime ]; then",
|
||||||
|
" rm -f /etc/localtime",
|
||||||
|
" ln -sf /usr/share/zoneinfo/" . escapeshellarg($desired_timezone) . " /etc/localtime",
|
||||||
|
"fi",
|
||||||
|
"if command -v dpkg-reconfigure > /dev/null 2>&1; then",
|
||||||
|
" dpkg-reconfigure -f noninteractive tzdata",
|
||||||
|
"elif command -v tzdata-update > /dev/null 2>&1; then",
|
||||||
|
" tzdata-update",
|
||||||
|
"elif [ -f /etc/sysconfig/clock ]; then",
|
||||||
|
" sed -i 's/^ZONE=.*/ZONE=\"" . $desired_timezone . "\"/' /etc/sysconfig/clock",
|
||||||
|
" source /etc/sysconfig/clock",
|
||||||
|
"fi",
|
||||||
|
"if command -v systemctl > /dev/null 2>&1 && pidof systemd > /dev/null; then",
|
||||||
|
" systemctl try-restart systemd-timesyncd.service || true",
|
||||||
|
"elif command -v service > /dev/null 2>&1; then",
|
||||||
|
" service ntpd restart || service ntp restart || true",
|
||||||
|
"fi"
|
||||||
|
];
|
||||||
|
|
||||||
|
instant_remote_process($commands, $server);
|
||||||
|
|
||||||
|
$server->settings->server_timezone = $desired_timezone;
|
||||||
|
$server->settings->save();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user