Make journal selection behavior more consistent when there's a colon with no date (#1164)

This commit is contained in:
Jonathan Wren 2021-01-30 13:47:26 -08:00 committed by GitHub
parent ac0c49918d
commit ea845a8408
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 4 deletions

View file

@ -29,6 +29,20 @@ Feature: Multiple journals
And journal "work" should have 1 entry
And journal "work" should contain "2012-07-23"
Scenario: Write to specified journal without a timestamp but with colon
Given we use the config "multiple.yaml"
When we run "jrnl work : a long day in the office"
Then journal "default" should have 2 entries
And journal "work" should have 1 entry
And journal "work" should contain "a long day in the office"
Scenario: Write to specified journal without a timestamp but with colon
Given we use the config "multiple.yaml"
When we run "jrnl work: a long day in the office"
Then journal "default" should have 2 entries
And journal "work" should have 1 entry
And journal "work" should contain "a long day in the office"
Scenario: Create new journals as required
Given we use the config "multiple.yaml"
Then journal "ideas" should not exist

View file

@ -138,10 +138,18 @@ def update_config(config, new_config, scope, force_local=False):
def get_journal_name(args, config):
args.journal_name = 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 DEFAULT_JOURNAL_KEY not in config["journals"]:
# The first arg might be a journal name
if args.text:
potential_journal_name = args.text[0]
if potential_journal_name[-1] == ":":
potential_journal_name = potential_journal_name[0:-1]
if potential_journal_name in config["journals"]:
args.journal_name = potential_journal_name
args.text = args.text[1:]
if args.journal_name not in config["journals"]:
print("No default journal configured.", file=sys.stderr)
print(list_journals(config), file=sys.stderr)
sys.exit(1)