Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prompt to include colors in config when first running jrnl #1687

Merged
merged 8 commits into from
Feb 25, 2023
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 11 additions & 2 deletions jrnl/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,14 +107,23 @@ def get_default_config() -> dict[str, Any]:
"linewrap": 79,
"indent_character": "|",
"colors": {
"date": "none",
"title": "none",
"body": "none",
"date": "none",
"tags": "none",
"title": "none",
},
}


def get_default_colors() -> dict[str, Any]:
return {
"body": "none",
"date": "black",
"tags": "yellow",
"title": "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)
Expand Down
6 changes: 6 additions & 0 deletions jrnl/install.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
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
Expand Down Expand Up @@ -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

Expand Down
3 changes: 3 additions & 0 deletions jrnl/messages/MsgText.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@ def __str__(self) -> str:
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?"
Expand Down
1 change: 1 addition & 0 deletions tests/bdd/features/file_storage.feature
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
33 changes: 32 additions & 1 deletion tests/bdd/features/install.feature
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -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"
Expand All @@ -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"
Expand All @@ -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:
body: none
date: black
tags: yellow
title: 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:
body: none
date: none
tags: none
title: none