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: def get_default_journal_path() -> str:
journal_data_path = xdg.BaseDirectory.save_data_path(XDG_RESOURCE) or home_dir() journal_data_path = xdg.BaseDirectory.save_data_path(XDG_RESOURCE) or home_dir()
return os.path.join(journal_data_path, DEFAULT_JOURNAL_NAME) 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 import __version__
from jrnl.config import DEFAULT_JOURNAL_KEY from jrnl.config import DEFAULT_JOURNAL_KEY
from jrnl.config import get_config_path 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_config
from jrnl.config import get_default_journal_path from jrnl.config import get_default_journal_path
from jrnl.config import load_config from jrnl.config import load_config
@ -147,6 +148,11 @@ def install() -> dict:
default_config["encrypt"] = True default_config["encrypt"] = True
print_msg(Message(MsgText.JournalEncrypted, MsgStyle.NORMAL)) 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) save_config(default_config)
return default_config return default_config

View file

@ -37,6 +37,9 @@ class MsgText(Enum):
EncryptJournalQuestion = """ EncryptJournalQuestion = """
Do you want to encrypt your journal? (You can always change this later) 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]" YesOrNoPromptDefaultYes = "[Y/n]"
YesOrNoPromptDefaultNo = "[y/N]" YesOrNoPromptDefaultNo = "[y/N]"
ContinueUpgrade = "Continue upgrading jrnl?" 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 When we run "jrnl hello world" and enter
test.txt test.txt
n n
\n
Then the output should contain "Journal 'default' created" Then the output should contain "Journal 'default' created"
When we change directory to "subfolder" When we change directory to "subfolder"
And we run "jrnl -n 1" And we run "jrnl -n 1"

View file

@ -5,6 +5,7 @@ Feature: Installing jrnl
When we run "jrnl hello world" and enter When we run "jrnl hello world" and enter
\n \n
\n \n
\n
Then the output should contain "Journal 'default' created" Then the output should contain "Journal 'default' created"
And the default journal "journal.txt" should be in the "." directory And the default journal "journal.txt" should be in the "." directory
And the config should contain "encrypt: false" And the config should contain "encrypt: false"
@ -15,6 +16,7 @@ Feature: Installing jrnl
When we run "jrnl hello world" and enter When we run "jrnl hello world" and enter
default/custom.txt default/custom.txt
n n
\n
Then the output should contain "Journal 'default' created" Then the output should contain "Journal 'default' created"
And the default journal "custom.txt" should be in the "default" directory And the default journal "custom.txt" should be in the "default" directory
And the config should contain "encrypt: false" And the config should contain "encrypt: false"
@ -26,6 +28,7 @@ Feature: Installing jrnl
When we run "jrnl hello world" and enter When we run "jrnl hello world" and enter
~/custom.txt ~/custom.txt
n n
\n
Then the output should contain "Journal 'default' created" Then the output should contain "Journal 'default' created"
And the default journal "custom.txt" should be in the "home" directory And the default journal "custom.txt" should be in the "home" directory
And the config should contain "encrypt: false" And the config should contain "encrypt: false"
@ -36,10 +39,38 @@ Feature: Installing jrnl
When we run "jrnl hello world" and enter When we run "jrnl hello world" and enter
encrypted.txt encrypted.txt
y y
\n
Then the output should contain "Journal will be encrypted" Then the output should contain "Journal will be encrypted"
And the default journal "encrypted.txt" should be in the "." directory And the default journal "encrypted.txt" should be in the "." directory
And the config should contain "encrypt: true" And the config should contain "encrypt: true"
And the version in the config file should be up-to-date And the version in the config file should be up-to-date
When we run "jrnl" When we run "jrnl"
Then we should be prompted for a password 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