diff options
Diffstat (limited to 'src/UfwModule.php')
-rw-r--r-- | src/UfwModule.php | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/UfwModule.php b/src/UfwModule.php new file mode 100644 index 0000000..1ec4452 --- /dev/null +++ b/src/UfwModule.php @@ -0,0 +1,39 @@ +<?php + +namespace PHPIAC\Modules; + +use PHPIAC\Connection; +use PHPIAC\Module\Module; +use PHPIAC\Module\State; + +class UfwModule extends Module +{ + protected string $rule; + protected string $name; + + protected string $state = State::ENABLED; + + /** + * @inheritDoc + */ + public function checkState(): bool + { + return false; + } + + /** + * @inheritDoc + */ + public function getCommands(): array + { + Connection::exec(implode(PHP_EOL, [ + "sudo ufw $this->rule $this->name", + match ($this->state) { + State::ENABLED => "sudo ufw --force enable", + State::DISABLED => "sudo ufw disable", + }, + ])); + + return []; + } +} |