MCPcopy
hub / github.com/freedomofpress/dangerzone / run

Function run

dangerzone/cli.py:74–183  ·  view source on GitHub ↗
(
    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,
)

Source from the content-addressed store, hash-verified

72@click.version_option(version=get_version(), message="%(version)s")
73@errors.handle_document_errors
74def 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 = []

Callers 2

dangerzone-cli.pyFile · 0.90

Calls 15

unset_custom_runtimeMethod · 0.95
set_custom_runtimeMethod · 0.95
convert_documentsMethod · 0.95
get_safe_documentsMethod · 0.95
get_failed_documentsMethod · 0.95
display_bannerFunction · 0.85
SettingsClass · 0.85
DangerzoneCoreClass · 0.85
DummyClass · 0.85
QubesClass · 0.85

Tested by

no test coverage detected