cli.cli_main
- File:
EuljiroBible/cli/cli_main.py
- Author:
Benjamin Jaedon Choi - https://github.com/saintbenjamin
- Affiliated Church:
The Eulji-ro Presbyterian Church [대한예수교장로회(통합) 을지로교회]
- Address:
The Eulji-ro Presbyterian Church, 24-10, Eulji-ro 20-gil, Jung-gu, Seoul 04549, South Korea
- Telephone:
+82-2-2266-3070
- E-mail:
euljirochurch [at] G.M.A.I.L. (replace [at] with @ and G.M.A.I.L as you understood.)
- License:
MIT License with Attribution Requirement (see LICENSE file for details); Copyright (c) 2025 The Eulji-ro Presbyterian Church.
Command-line entry point for the EuljiroBible CLI interface.
This module provides a minimal command dispatcher for the CLI. It parses
sys.argv and routes execution to the appropriate command handler.
Supported commands:
bible: Bible lookup / verse output workflow handled bycli.commands.run_bible_command().search: Keyword search workflow handled bycli.commands.run_search_command().
Dispatch behavior:
If no arguments are provided, this module calls
run_bible_command([]), which is expected to display CLI usage and available versions.If the first token is an unknown command, this module falls back to treating the entire argument list as a
biblecommand. This preserves a simple UX where users can type version/book references directly without explicitly prefixingbible.
Note
This module intentionally keeps parsing and routing logic small. Command semantics, validation, I/O, and user-facing messages belong in
cli.commands.CLI error messages are expected to be English-only by project convention.
Example
Typical usage patterns:
$ bible NKRV John 3:16
$ bible search NKRV "God so loved"
$ bible NKRV John 3:16 # falls back to 'bible' command
- cli.cli_main.main()[source]
Main entry point for the CLI version of EuljiroBible.
This function reads command-line arguments from
sys.argvand dispatches execution to the appropriate command handler.- Behavior:
No arguments: show default Bible command usage (delegated).
First argument is
bible: dispatch tocli.commands.run_bible_command().First argument is
search: dispatch tocli.commands.run_search_command().Otherwise: fallback to
cli.commands.run_bible_command()with the full argument list.
- Returns:
None