($adapter, string $path)
| 105 | } |
| 106 | |
| 107 | private static function deletePath($adapter, string $path): array |
| 108 | { |
| 109 | $ok = false; |
| 110 | $err = ''; |
| 111 | try { |
| 112 | $ok = (bool)$adapter->delete($path); |
| 113 | } catch (Throwable $e) { |
| 114 | $err = trim($e->getMessage()); |
| 115 | } |
| 116 | if ($ok) { |
| 117 | return [true, '']; |
| 118 | } |
| 119 | |
| 120 | $exists = false; |
| 121 | try { |
| 122 | $st = $adapter->stat($path); |
| 123 | $exists = is_array($st); |
| 124 | } catch (Throwable $e) { |
| 125 | // ignore |
| 126 | } |
| 127 | if (!$exists) { |
| 128 | return [true, '']; |
| 129 | } |
| 130 | |
| 131 | if ($err === '') { |
| 132 | $err = self::adapterError($adapter); |
| 133 | } |
| 134 | if ($err === '') { |
| 135 | $err = 'Delete failed'; |
| 136 | } |
| 137 | return [false, $err]; |
| 138 | } |
| 139 | |
| 140 | private static function buildResult(array $source, array $checks): array |
| 141 | { |
no test coverage detected