-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathlist-missing-entries.php
31 lines (25 loc) · 1.12 KB
/
list-missing-entries.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
require_once 'vendor/autoload.php';
use Runalyze\Devices\Device\DeviceInterface;
use Runalyze\Devices\Device\DeviceProfile;
use Runalyze\Devices\Distributor\DistributorInterface;
use Runalyze\Devices\Distributor\DistributorProfile;
/** @var DistributorInterface[] $distributor */
$distributor = array_combine(
DistributorProfile::getEnum(),
array_map(fn(int $enum) => DistributorProfile::get($enum), DistributorProfile::getEnum())
);
$distributorKeys = array_flip(DistributorProfile::getEnum());
$missingByDistributor = [];
foreach (DeviceProfile::getEnum() as $deviceKey => $deviceEnum) {
/** @var DeviceInterface $device */
$device = DeviceProfile::get($deviceEnum);
if (!in_array($deviceEnum, $distributor[$device->getDistributorEnum()]->getDeviceEnumList())) {
$missingByDistributor[$device->getDistributorEnum()][] = sprintf('%s (ID %d)', $deviceKey, $deviceEnum);
}
}
foreach ($missingByDistributor as $distributorEnum => $missingDevices) {
echo sprintf("%s (ID %d):\n", $distributorKeys[$distributorEnum], $distributorEnum);
echo " ".implode("\n ", $missingDevices);
echo "\n";
}