Move journal_name out of cli and into separate function

It's now part of args, and it's parsed into a function after the config
is available
This commit is contained in:
Jonathan Wren 2020-07-02 21:44:53 -07:00
parent 5564d6a5a4
commit ef9cd5c2bf
3 changed files with 32 additions and 22 deletions

View file

@ -25,8 +25,8 @@ import platform
import sys
from . import install, plugins, util
from .util import list_journals
from .parsing import parse_args_before_config
from .parsing import parse_args_after_config
from .Journal import PlainJournal, open_journal
from .util import WARNING_COLOR, ERROR_COLOR, RESET_COLOR, UserAbort
@ -159,24 +159,14 @@ Python 3.7 (or higher) soon.
args.postconfig_cmd(config=config, args=args)
sys.exit(0)
args = parse_args_after_config(args, config)
log.debug('Using configuration "%s"', config)
original_config = config.copy()
# If the first textual argument points to a journal file,
# use this!
config = util.scope_config(config, args.journal_name)
journal_name = install.DEFAULT_JOURNAL_KEY
if args.text and args.text[0] in config["journals"]:
journal_name = args.text[0]
args.text = args.text[1:]
elif install.DEFAULT_JOURNAL_KEY not in config["journals"]:
print("No default journal configured.", file=sys.stderr)
print(list_journals(config), file=sys.stderr)
sys.exit(1)
config = util.scope_config(config, journal_name)
log.debug('Using journal "%s"', journal_name)
log.debug('Using journal "%s"', args.journal_name)
mode_compose, mode_export, mode_import = guess_mode(args, config)
@ -188,7 +178,7 @@ Python 3.7 (or higher) soon.
# This is where we finally open the journal!
try:
journal = open_journal(journal_name, config)
journal = open_journal(args.journal_name, config)
except KeyboardInterrupt:
print("[Interrupted while opening journal]", file=sys.stderr)
sys.exit(1)
@ -231,9 +221,9 @@ Python 3.7 (or higher) soon.
# Writing mode
elif mode_compose:
raw = " ".join(args.text).strip()
log.debug('Appending raw line "%s" to journal "%s"', raw, journal_name)
log.debug('Appending raw line "%s" to journal "%s"', raw, args.journal_name)
journal.new_entry(raw)
print(f"[Entry added to {journal_name} journal]", file=sys.stderr)
print(f"[Entry added to {args.journal_name} journal]", file=sys.stderr)
journal.write()
if not mode_compose:
@ -271,7 +261,7 @@ Python 3.7 (or higher) soon.
# Not encrypting to a separate file: update config!
if not args.encrypt:
update_config(
original_config, {"encrypt": True}, journal_name, force_local=True
original_config, {"encrypt": True}, args.journal_name, force_local=True
)
install.save_config(original_config)
@ -280,7 +270,7 @@ Python 3.7 (or higher) soon.
# Not decrypting to a separate file: update config!
if not args.decrypt:
update_config(
original_config, {"encrypt": False}, journal_name, force_local=True
original_config, {"encrypt": False}, args.journal_name, force_local=True
)
install.save_config(original_config)

View file

@ -9,6 +9,7 @@ from .commands import preconfig_version
from .commands import preconfig_diagnostic
from .commands import postconfig_list
from .util import deprecated_cmd
from .util import get_journal_name
class WrappingFormatter(argparse.RawDescriptionHelpFormatter):
@ -274,5 +275,9 @@ def parse_args_before_config(args=None):
return parser.parse_intermixed_args(args)
def parse_args_after_config(args=None):
return None
def parse_args_after_config(args, config):
# print(str(args)) # @todo take this out
args = get_journal_name(args, config)
return args

View file

@ -321,3 +321,18 @@ def list_journals(config):
journal, ml, cfg["journal"] if isinstance(cfg, dict) else cfg
)
return result
def get_journal_name(args, config):
from . import install
args.journal_name = install.DEFAULT_JOURNAL_KEY
if args.text and args.text[0] in config["journals"]:
args.journal_name = args.text[0]
args.text = args.text[1:]
elif install.DEFAULT_JOURNAL_KEY not in config["journals"]:
print("No default journal configured.", file=sys.stderr)
print(list_journals(config), file=sys.stderr)
sys.exit(1)
return args