(
output_filename: str | None,
ocr_lang: str | None,
filenames: list[str] | None,
archive: bool,
dummy_conversion: bool,
debug: bool,
set_container_runtime: str | None = None,
linger: bool = False,
)
| 72 | @click.version_option(version=get_version(), message="%(version)s") |
| 73 | @errors.handle_document_errors |
| 74 | def run( |
| 75 | output_filename: str | None, |
| 76 | ocr_lang: str | None, |
| 77 | filenames: list[str] | None, |
| 78 | archive: bool, |
| 79 | dummy_conversion: bool, |
| 80 | debug: bool, |
| 81 | set_container_runtime: str | None = None, |
| 82 | linger: bool = False, |
| 83 | ) -> None: |
| 84 | setup_logging() |
| 85 | display_banner() |
| 86 | settings = Settings(debug=debug) |
| 87 | if set_container_runtime: |
| 88 | if set_container_runtime == "default": |
| 89 | settings.unset_custom_runtime() |
| 90 | click.echo( |
| 91 | "Instructed Dangerzone to use the default container runtime for this OS" |
| 92 | ) |
| 93 | else: |
| 94 | container_runtime = settings.set_custom_runtime( |
| 95 | set_container_runtime, autosave=True |
| 96 | ) |
| 97 | click.echo(f"Set the settings container_runtime to {container_runtime}") |
| 98 | sys.exit(0) |
| 99 | elif not filenames: |
| 100 | raise click.UsageError("Missing argument 'FILENAMES...'") |
| 101 | |
| 102 | if getattr(sys, "dangerzone_dev", False) and dummy_conversion: |
| 103 | dangerzone = DangerzoneCore(Dummy()) |
| 104 | elif is_qubes_native_conversion(): |
| 105 | dangerzone = DangerzoneCore(Qubes()) |
| 106 | else: |
| 107 | dangerzone = DangerzoneCore(Container(debug=debug)) |
| 108 | |
| 109 | if len(filenames) == 1 and output_filename: |
| 110 | dangerzone.add_document_from_filename(filenames[0], output_filename, archive) |
| 111 | elif len(filenames) > 1 and output_filename: |
| 112 | click.echo("--output-filename can only be used with one input file.") |
| 113 | sys.exit(1) |
| 114 | else: |
| 115 | for filename in filenames: |
| 116 | dangerzone.add_document_from_filename(filename, archive=archive) |
| 117 | |
| 118 | # Validate OCR language |
| 119 | if ocr_lang: |
| 120 | valid = False |
| 121 | for lang in dangerzone.ocr_languages: |
| 122 | if dangerzone.ocr_languages[lang] == ocr_lang: |
| 123 | valid = True |
| 124 | break |
| 125 | if not valid: |
| 126 | click.echo("Invalid OCR language code. Valid language codes:") |
| 127 | for lang in dangerzone.ocr_languages: |
| 128 | click.echo(f"{dangerzone.ocr_languages[lang]}: {lang}") |
| 129 | sys.exit(1) |
| 130 | |
| 131 | tasks = [] |
no test coverage detected