mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-01-29 07:24:56 +03:00
Compare commits
1 Commits
bb184f8ea3
...
736f30e62c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
736f30e62c |
@ -11,7 +11,7 @@ from pathlib import Path
|
||||
from playhouse.sqlite_ext import SqliteExtDatabase
|
||||
|
||||
from frigate.config import CameraConfig, FrigateConfig, RetainModeEnum
|
||||
from frigate.const import CACHE_DIR, CLIPS_DIR, MAX_WAL_SIZE, RECORD_DIR
|
||||
from frigate.const import CACHE_DIR, CLIPS_DIR, MAX_WAL_SIZE
|
||||
from frigate.models import Previews, Recordings, ReviewSegment, UserReviewStatus
|
||||
from frigate.util.builtin import clear_and_unlink
|
||||
from frigate.util.media import remove_empty_directories
|
||||
@ -376,5 +376,5 @@ class RecordingCleanup(threading.Thread):
|
||||
if counter == 0:
|
||||
self.clean_tmp_clips()
|
||||
maybe_empty_dirs = self.expire_recordings()
|
||||
remove_empty_directories(Path(RECORD_DIR), maybe_empty_dirs)
|
||||
remove_empty_directories(maybe_empty_dirs)
|
||||
self.truncate_wal()
|
||||
|
||||
@ -50,36 +50,22 @@ class SyncResult:
|
||||
}
|
||||
|
||||
|
||||
def remove_empty_directories(root: Path, paths: Iterable[Path]) -> None:
|
||||
def remove_empty_directories(paths: Iterable[Path]) -> None:
|
||||
"""
|
||||
Remove directories if they exist and are empty.
|
||||
Silently ignores non-existent and non-empty directories.
|
||||
Attempts to remove parent directories as well, stopping at the given root.
|
||||
"""
|
||||
count = 0
|
||||
while True:
|
||||
parents = set()
|
||||
for path in paths:
|
||||
if path == root:
|
||||
for path in paths:
|
||||
try:
|
||||
path.rmdir()
|
||||
except FileNotFoundError:
|
||||
continue
|
||||
except OSError as e:
|
||||
if e.errno == errno.ENOTEMPTY:
|
||||
continue
|
||||
|
||||
try:
|
||||
path.rmdir()
|
||||
count += 1
|
||||
except FileNotFoundError:
|
||||
pass
|
||||
except OSError as e:
|
||||
if e.errno == errno.ENOTEMPTY:
|
||||
continue
|
||||
raise
|
||||
|
||||
parents.add(path.parent)
|
||||
|
||||
if not parents:
|
||||
break
|
||||
|
||||
paths = parents
|
||||
|
||||
raise
|
||||
count += 1
|
||||
logger.debug("Removed {count} empty directories")
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user