Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 3 additions & 5 deletions src/EnvironmentPath.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,9 @@
*/
final class EnvironmentPath
{
private string $value;

private function __construct(string $value)
{
$this->value = $value;
private function __construct(
private string $value,
) {
}

/**
Expand Down
8 changes: 3 additions & 5 deletions src/Facade/Cpu/LinuxFacade.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,9 @@
*/
final class LinuxFacade
{
private Processes $processes;

public function __construct(Processes $processes)
{
$this->processes = $processes;
public function __construct(
private Processes $processes,
) {
}

/**
Expand Down
8 changes: 3 additions & 5 deletions src/Facade/Cpu/OSXFacade.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,9 @@
*/
final class OSXFacade
{
private Processes $processes;

public function __construct(Processes $processes)
{
$this->processes = $processes;
public function __construct(
private Processes $processes,
) {
}

/**
Expand Down
8 changes: 3 additions & 5 deletions src/Facade/Memory/LinuxFacade.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,9 @@ final class LinuxFacade
'SwapCached' => 'swap',
];

private Processes $processes;

public function __construct(Processes $processes)
{
$this->processes = $processes;
public function __construct(
private Processes $processes,
) {
}

/**
Expand Down
11 changes: 4 additions & 7 deletions src/Facade/Memory/OSXFacade.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,10 @@
*/
final class OSXFacade
{
private Processes $processes;
private EnvironmentPath $path;

public function __construct(Processes $processes, EnvironmentPath $path)
{
$this->processes = $processes;
$this->path = $path;
public function __construct(
private Processes $processes,
private EnvironmentPath $path,
) {
}

/**
Expand Down
13 changes: 5 additions & 8 deletions src/Server/Disk/LoggerDisk.php → src/Server/Disk/Logger.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,12 @@
};
use Psr\Log\LoggerInterface;

final class LoggerDisk implements Disk
final class Logger implements Disk
{
private Disk $disk;
private LoggerInterface $logger;

private function __construct(Disk $disk, LoggerInterface $logger)
{
$this->disk = $disk;
$this->logger = $logger;
private function __construct(
private Disk $disk,
private LoggerInterface $logger,
) {
}

/**
Expand Down
17 changes: 7 additions & 10 deletions src/Server/Disk/UnixDisk.php → src/Server/Disk/Unix.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
Monoid\Concat,
};

final class UnixDisk implements Disk
final class Unix implements Disk
{
private static array $columns = [
'Size' => 'size',
Expand All @@ -34,11 +34,9 @@ final class UnixDisk implements Disk
'Mounted' => 'mountPoint',
];

private Processes $processes;

private function __construct(Processes $processes)
{
$this->processes = $processes;
private function __construct(
private Processes $processes,
) {
}

/**
Expand Down Expand Up @@ -68,10 +66,9 @@ public function volumes(): Set
->fold(new Concat),
)
->map($this->parse(...))
->match(
static fn($volumes) => $volumes,
static fn() => Set::of(),
);
->toSequence()
->toSet()
->flatMap(static fn($volumes) => $volumes);
}

#[\Override]
Expand Down
25 changes: 2 additions & 23 deletions src/Server/Memory/Bytes.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

namespace Innmind\Server\Status\Server\Memory;

use Innmind\IO\Stream\Size;
use Innmind\Validation\Is;
use Innmind\Immutable\{
Str,
Expand Down Expand Up @@ -50,29 +51,7 @@ public function toInt(): int

public function toString(): string
{
return match (true) {
$this->value < self::BYTES => $this->value.'B',
$this->value < self::KILOBYTES => \sprintf(
'%sKB',
\round($this->value/self::BYTES, 3),
),
$this->value < self::MEGABYTES => \sprintf(
'%sMB',
\round($this->value/self::KILOBYTES, 3),
),
$this->value < self::GIGABYTES => \sprintf(
'%sGB',
\round($this->value/self::MEGABYTES, 3),
),
$this->value < self::TERABYTES => \sprintf(
'%sTB',
\round($this->value/self::GIGABYTES, 3),
),
$this->value < self::PETABYTES => \sprintf(
'%sPB',
\round($this->value/self::TERABYTES, 3),
),
};
return Size::of($this->value)->toString();
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,12 @@
};
use Psr\Log\LoggerInterface;

final class LoggerProcesses implements Processes
final class Logger implements Processes
{
private Processes $processes;
private LoggerInterface $logger;

private function __construct(Processes $processes, LoggerInterface $logger)
{
$this->processes = $processes;
$this->logger = $logger;
private function __construct(
private Processes $processes,
private LoggerInterface $logger,
) {
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,12 @@
Monoid\Concat,
};

final class UnixProcesses implements Processes
final class Unix implements Processes
{
private Clock $clock;
private Control\Processes $processes;

private function __construct(Clock $clock, Control\Processes $processes)
{
$this->clock = $clock;
$this->processes = $processes;
private function __construct(
private Clock $clock,
private Control\Processes $processes,
) {
}

/**
Expand All @@ -54,10 +51,9 @@ public function all(): Set
->withShortOption('eo', $this->format()),
)
->map($this->parse(...))
->match(
static fn($processes) => $processes,
static fn() => Set::of(),
);
->toSequence()
->toSet()
->flatMap(static fn($processes) => $processes);
}

#[\Override]
Expand Down Expand Up @@ -140,26 +136,17 @@ private function parse(Str $output): Set
->get(4)
->keep(Is::string()->nonEmpty()->asPredicate())
->map(Command::of(...));
$start = Maybe::just(
$this->clock->at($start, Format::of('D M j H:i:s Y')),
);

return Maybe::all($user, $pid, $percentage, $memory, $command)
->map(fn(User $user, Pid $pid, Percentage $percentage, Memory $memory, Command $command) => Process::of(
$pid,
$user,
$percentage,
$memory,
$this->clock->at($start, Format::of('D M j H:i:s Y')),
$command,
));
return Maybe::all($pid, $user, $percentage, $memory, $start, $command)
->map(Process::of(...));
});

/** @var Set<Process> */
return $processes->reduce(
Set::of(),
static fn(Set $processes, Maybe $process): Set => $process->match(
static fn(Process $process) => ($processes)($process),
static fn() => $processes,
),
);
return $processes
->flatMap(static fn($process) => $process->toSequence()) // discard process that failed to be parsed
->toSet();
}

private function format(): string
Expand Down
10 changes: 4 additions & 6 deletions src/Servers/Linux.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,7 @@
Facade\Cpu\LinuxFacade as CpuFacade,
Facade\Memory\LinuxFacade as MemoryFacade,
Facade\LoadAverage\PhpFacade as LoadAverageFacade,
Server\Processes\UnixProcesses,
Server\Disk,
Server\Disk\UnixDisk,
};
use Innmind\Server\Control\Server as Control;
use Innmind\TimeContinuum\Clock;
Expand All @@ -22,17 +20,17 @@ final class Linux implements Server
{
private CpuFacade $cpu;
private MemoryFacade $memory;
private UnixProcesses $processes;
private Processes\Unix $processes;
private LoadAverageFacade $loadAverage;
private UnixDisk $disk;
private Disk\Unix $disk;

private function __construct(Clock $clock, Control $control)
{
$this->cpu = new CpuFacade($control->processes());
$this->memory = new MemoryFacade($control->processes());
$this->processes = UnixProcesses::of($clock, $control->processes());
$this->processes = Processes\Unix::of($clock, $control->processes());
$this->loadAverage = new LoadAverageFacade;
$this->disk = UnixDisk::of($control->processes());
$this->disk = Disk\Unix::of($control->processes());
}

/**
Expand Down
15 changes: 6 additions & 9 deletions src/Servers/Logger.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,10 @@

final class Logger implements Server
{
private Server $server;
private LoggerInterface $logger;

private function __construct(Server $server, LoggerInterface $logger)
{
$this->server = $server;
$this->logger = $logger;
private function __construct(
private Server $server,
private LoggerInterface $logger,
) {
}

public static function of(Server $server, LoggerInterface $logger): self
Expand Down Expand Up @@ -63,7 +60,7 @@ public function memory(): Attempt
#[\Override]
public function processes(): Processes
{
return Processes\LoggerProcesses::of(
return Processes\Logger::of(
$this->server->processes(),
$this->logger,
);
Expand All @@ -86,7 +83,7 @@ public function loadAverage(): Attempt
#[\Override]
public function disk(): Disk
{
return Disk\LoggerDisk::of(
return Disk\Logger::of(
$this->server->disk(),
$this->logger,
);
Expand Down
10 changes: 4 additions & 6 deletions src/Servers/OSX.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,7 @@
Facade\Cpu\OSXFacade as CpuFacade,
Facade\Memory\OSXFacade as MemoryFacade,
Facade\LoadAverage\PhpFacade as LoadAverageFacade,
Server\Processes\UnixProcesses,
Server\Disk,
Server\Disk\UnixDisk,
EnvironmentPath,
};
use Innmind\Server\Control\Server as Control;
Expand All @@ -23,17 +21,17 @@ final class OSX implements Server
{
private CpuFacade $cpu;
private MemoryFacade $memory;
private UnixProcesses $processes;
private Processes\Unix $processes;
private LoadAverageFacade $loadAverage;
private UnixDisk $disk;
private Disk\Unix $disk;

private function __construct(Clock $clock, Control $control, EnvironmentPath $path)
{
$this->cpu = new CpuFacade($control->processes());
$this->memory = new MemoryFacade($control->processes(), $path);
$this->processes = UnixProcesses::of($clock, $control->processes());
$this->processes = Processes\Unix::of($clock, $control->processes());
$this->loadAverage = new LoadAverageFacade;
$this->disk = UnixDisk::of($control->processes());
$this->disk = Disk\Unix::of($control->processes());
}

/**
Expand Down
Loading