mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-05-10 16:48:31 +02:00
* Moving configuration values and methods from install.py to config.py -- everything is broken right now * Using context to store config path - still lots broken * Use mocks and context.config_path to store test configs - many tests still broken though * Update changelog [ci skip] * Fix jrnl --ls crash * Fix crash when no editor configured * Attempt to patch config path with test data - doesn't appear to be working * Properly use patched config path and add config given to scenario that wasn't using it * Fix copypasta * Fix editor test that needed patched config and trapping for system exit * Add exception and handling for when configuration directory is actually a file * Remove extraneous comment * Use more generic JrnlError with messaging switchboard * Format code a bit nicer * Remove unnecessary given in diagnostic test * Ensure full error message is output * Remove unnecessary whitespace characters
42 lines
967 B
Python
42 lines
967 B
Python
#!/usr/bin/env python
|
|
# Copyright (C) 2012-2021 jrnl contributors
|
|
# License: https://www.gnu.org/licenses/gpl-3.0.html
|
|
|
|
import logging
|
|
import sys
|
|
|
|
from .jrnl import run
|
|
from .args import parse_args
|
|
from .exception import JrnlError
|
|
|
|
|
|
def configure_logger(debug=False):
|
|
if not debug:
|
|
logging.disable()
|
|
return
|
|
|
|
logging.basicConfig(
|
|
level=logging.DEBUG,
|
|
format="%(levelname)-8s %(name)-12s %(message)s",
|
|
)
|
|
logging.getLogger("parsedatetime").setLevel(logging.INFO)
|
|
logging.getLogger("keyring.backend").setLevel(logging.ERROR)
|
|
|
|
|
|
def cli(manual_args=None):
|
|
try:
|
|
if manual_args is None:
|
|
manual_args = sys.argv[1:]
|
|
|
|
args = parse_args(manual_args)
|
|
configure_logger(args.debug)
|
|
logging.debug("Parsed args: %s", args)
|
|
|
|
return run(args)
|
|
|
|
except JrnlError as e:
|
|
print(e.message, file=sys.stderr)
|
|
return 1
|
|
|
|
except KeyboardInterrupt:
|
|
return 1
|