mirror of
https://github.com/maxdorninger/MediaManager.git
synced 2026-02-20 07:59:50 -05:00
46 lines
2.1 KiB
Python
46 lines
2.1 KiB
Python
import shutil
|
|
from pathlib import Path
|
|
|
|
|
|
def run_filesystem_checks(config, log):
|
|
log.info("Creating directories if they don't exist...")
|
|
config.misc.tv_directory.mkdir(parents=True, exist_ok=True)
|
|
config.misc.movie_directory.mkdir(parents=True, exist_ok=True)
|
|
config.misc.torrent_directory.mkdir(parents=True, exist_ok=True)
|
|
config.misc.image_directory.mkdir(parents=True, exist_ok=True)
|
|
log.info("Conducting filesystem tests...")
|
|
test_dir = config.misc.tv_directory / Path(".media_manager_test_dir")
|
|
test_dir.mkdir(parents=True, exist_ok=True)
|
|
test_dir.rmdir()
|
|
log.info(f"Successfully created test dir in TV directory at: {test_dir}")
|
|
test_dir = config.misc.movie_directory / Path(".media_manager_test_dir")
|
|
test_dir.mkdir(parents=True, exist_ok=True)
|
|
test_dir.rmdir()
|
|
log.info(f"Successfully created test dir in Movie directory at: {test_dir}")
|
|
test_dir = config.misc.image_directory / Path(".media_manager_test_dir")
|
|
test_dir.touch()
|
|
test_dir.unlink()
|
|
log.info(f"Successfully created test file in Image directory at: {test_dir}")
|
|
test_dir = config.misc.tv_directory / Path(".media_manager_test_dir")
|
|
test_dir.mkdir(parents=True, exist_ok=True)
|
|
torrent_dir = config.misc.torrent_directory / Path(".media_manager_test_dir")
|
|
torrent_dir.mkdir(parents=True, exist_ok=True)
|
|
test_torrent_file = torrent_dir / Path(".media_manager.test.torrent")
|
|
test_torrent_file.touch()
|
|
test_hardlink = test_dir / Path(".media_manager.test.hardlink")
|
|
try:
|
|
test_hardlink.hardlink_to(test_torrent_file)
|
|
if not test_hardlink.samefile(test_torrent_file):
|
|
log.critical("Hardlink creation failed!")
|
|
log.info("Successfully created test hardlink in TV directory")
|
|
except OSError as e:
|
|
log.error(
|
|
f"Hardlink creation failed, falling back to copying files. Error: {e}"
|
|
)
|
|
shutil.copy(src=test_torrent_file, dst=test_hardlink)
|
|
finally:
|
|
test_hardlink.unlink()
|
|
test_torrent_file.unlink()
|
|
torrent_dir.rmdir()
|
|
test_dir.rmdir()
|