<?php namespace App\SSH\Services\Redis; use App\SSH\HasScripts; use App\SSH\Services\AbstractService; use Closure; class Redis extends AbstractService { use HasScripts; public function creationRules(array $input): array { return [ 'type' => [ 'required', function (string $attribute, mixed $value, Closure $fail) { $redisExists = $this->service->server->memoryDatabase(); if ($redisExists) { $fail('You already have a Redis service on the server.'); } }, ], ]; } public function install(): void { $this->service->server->ssh()->exec( $this->getScript('install.sh'), 'install-redis' ); $status = $this->service->server->systemd()->status($this->service->unit); $this->service->validateInstall($status); $this->service->server->os()->cleanup(); } public function uninstall(): void { $this->service->server->ssh()->exec( $this->getScript('uninstall.sh'), 'uninstall-redis' ); $this->service->server->os()->cleanup(); } }