#!/usr/local/bin/php syncUser($username); echo "Synced {$username}\n"; } exit(0); } catch (Throwable $e) { fwrite(STDERR, "DirectAdmin vacation synchronization failed: " . $e->getMessage() . "\n"); exit(1); } /** @return string[] */ function users_with_rules(string $baseDir): array { $dir = rtrim($baseDir, '/') . '/users'; if (!is_dir($dir)) { return []; } $users = []; foreach (scandir($dir) ?: [] as $entry) { if ($entry === '.' || $entry === '..' || !preg_match('/^[A-Za-z0-9._-]+$/', $entry)) { continue; } if (is_file($dir . '/' . $entry . '/rules.json')) { $users[] = $entry; } } sort($users); return $users; }