Add prompt to ask user if entries should be formatted with colors when installing jrnl

This commit is contained in:
Micah Jerome Ellison 2023-02-22 10:06:09 -08:00
parent 18397b13eb
commit 05a98fe332
5 changed files with 51 additions and 1 deletions

View file

@ -115,6 +115,15 @@ def get_default_config() -> dict[str, Any]:
}
def get_default_colors() -> dict[str, Any]:
return {
"date": "none",
"title": "black",
"body": "yellow",
"tags": "cyan",
}
def get_default_journal_path() -> str:
journal_data_path = xdg.BaseDirectory.save_data_path(XDG_RESOURCE) or home_dir()
return os.path.join(journal_data_path, DEFAULT_JOURNAL_NAME)

View file

@ -12,6 +12,7 @@ from rich.pretty import pretty_repr
from jrnl import __version__
from jrnl.config import DEFAULT_JOURNAL_KEY
from jrnl.config import get_config_path
from jrnl.config import get_default_colors
from jrnl.config import get_default_config
from jrnl.config import get_default_journal_path
from jrnl.config import load_config
@ -147,6 +148,11 @@ def install() -> dict:
default_config["encrypt"] = True
print_msg(Message(MsgText.JournalEncrypted, MsgStyle.NORMAL))
# Use colors?
use_colors = yesno(Message(MsgText.UseColorsQuestion), default=True)
if use_colors:
default_config["colors"] = get_default_colors()
save_config(default_config)
return default_config

View file

@ -37,6 +37,9 @@ class MsgText(Enum):
EncryptJournalQuestion = """
Do you want to encrypt your journal? (You can always change this later)
"""
UseColorsQuestion = """
Do you want jrnl to use colors when displaying entries? (You can always change this later)
"""
YesOrNoPromptDefaultYes = "[Y/n]"
YesOrNoPromptDefaultNo = "[y/N]"
ContinueUpgrade = "Continue upgrading jrnl?"

View file

@ -57,6 +57,7 @@ Feature: Journals iteracting with the file system in a way that users can see
When we run "jrnl hello world" and enter
test.txt
n
\n
Then the output should contain "Journal 'default' created"
When we change directory to "subfolder"
And we run "jrnl -n 1"

View file

@ -5,6 +5,7 @@ Feature: Installing jrnl
When we run "jrnl hello world" and enter
\n
\n
\n
Then the output should contain "Journal 'default' created"
And the default journal "journal.txt" should be in the "." directory
And the config should contain "encrypt: false"
@ -15,6 +16,7 @@ Feature: Installing jrnl
When we run "jrnl hello world" and enter
default/custom.txt
n
\n
Then the output should contain "Journal 'default' created"
And the default journal "custom.txt" should be in the "default" directory
And the config should contain "encrypt: false"
@ -26,6 +28,7 @@ Feature: Installing jrnl
When we run "jrnl hello world" and enter
~/custom.txt
n
\n
Then the output should contain "Journal 'default' created"
And the default journal "custom.txt" should be in the "home" directory
And the config should contain "encrypt: false"
@ -36,10 +39,38 @@ Feature: Installing jrnl
When we run "jrnl hello world" and enter
encrypted.txt
y
\n
Then the output should contain "Journal will be encrypted"
And the default journal "encrypted.txt" should be in the "." directory
And the config should contain "encrypt: true"
And the version in the config file should be up-to-date
When we run "jrnl"
Then we should be prompted for a password
Scenario: Install jrnl with colors by default
Given we use no config
When we run "jrnl hello world" and enter
\n
\n
\n
Then the output should contain "Journal 'default' created"
And the config should contain
colors:
date: none
title: black
body: yellow
tags: cyan
Scenario: Install jrnl without colors
Given we use no config
When we run "jrnl hello world" and enter
\n
\n
N
Then the output should contain "Journal 'default' created"
And the config should contain
colors:
date: none
title: none
body: none
tags: none