Added warning on hardlinks to exiftool command

This commit is contained in:
Rhet Turnbull
2022-05-21 08:48:59 -07:00
parent 63d515646b
commit 4e40d4b74e

View File

@@ -1,5 +1,6 @@
"""exiftool command for osxphotos CLI to update an previous export with exiftool metadata""" """exiftool command for osxphotos CLI to update an previous export with exiftool metadata"""
import os
import pathlib import pathlib
import sys import sys
from typing import Callable from typing import Callable
@@ -18,7 +19,6 @@ from osxphotos.utils import pluralize
from .click_rich_echo import ( from .click_rich_echo import (
rich_click_echo, rich_click_echo,
rich_echo,
rich_echo_error, rich_echo_error,
set_rich_console, set_rich_console,
set_rich_theme, set_rich_theme,
@@ -343,6 +343,8 @@ def process_files(
total = len(files) total = len(files)
count = 1 count = 1
all_results = ExportResults() all_results = ExportResults()
# process files that are hardlinked? Requires user confirmation
hardlink_ok = False
with rich_progress(console=get_verbose_console(), mock=options.verbose) as progress: with rich_progress(console=get_verbose_console(), mock=options.verbose) as progress:
task = progress.add_task("Processing files", total=total) task = progress.add_task("Processing files", total=total)
for uuid, file in files: for uuid, file in files:
@@ -350,7 +352,14 @@ def process_files(
verbose(f"Skipping missing file [filepath]{file}[/]") verbose(f"Skipping missing file [filepath]{file}[/]")
report_writer.write(ExportResults(missing=[file])) report_writer.write(ExportResults(missing=[file]))
continue continue
# TODO: zzz put in check for hardlink if not hardlink_ok and os.stat(file).st_nlink > 1:
rich_click_echo(
f"[warning]:warning-emoji: Warning: file [filepath]{file}[/] is hardlinked.\n"
"You may be modifying linked original files in your Photos library. "
"This is inadvisable.[/]",
)
click.confirm("Continue processing hardlinks?", abort=True)
hardlink_ok = True
verbose(f"Processing file [filepath]{file}[/] ([num]{count}/{total}[/num])") verbose(f"Processing file [filepath]{file}[/] ([num]{count}/{total}[/num])")
photo = photosdb.get_photo(uuid) photo = photosdb.get_photo(uuid)
export_options = ExportOptions( export_options = ExportOptions(