mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-05-10 08:38:32 +02:00
Prompt to include colors in config when first running jrnl (#1687)
* Add prompt to ask user if entries should be formatted with colors when installing jrnl * Use magenta instead of black for default date color * Use other default colors and alphabetize color list * Update tests * Delete test file * update lock file * fix failing test after merge conflict --------- Co-authored-by: Jonathan Wren <jonathan@nowandwren.com>
This commit is contained in:
parent
fecd696b2a
commit
e6804f1627
6 changed files with 1365 additions and 1311 deletions
|
@ -107,14 +107,23 @@ def get_default_config() -> dict[str, Any]:
|
||||||
"linewrap": 79,
|
"linewrap": 79,
|
||||||
"indent_character": "|",
|
"indent_character": "|",
|
||||||
"colors": {
|
"colors": {
|
||||||
"date": "none",
|
|
||||||
"title": "none",
|
|
||||||
"body": "none",
|
"body": "none",
|
||||||
|
"date": "none",
|
||||||
"tags": "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:
|
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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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?"
|
||||||
|
|
2612
poetry.lock
generated
2612
poetry.lock
generated
File diff suppressed because it is too large
Load diff
|
@ -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"
|
||||||
|
|
|
@ -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,25 +39,57 @@ 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:
|
||||||
|
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
|
||||||
|
|
||||||
Scenario: Install jrnl with encrypted default journal with no entries
|
Scenario: Install jrnl with encrypted default journal with no entries
|
||||||
Given we use no config
|
Given we use no config
|
||||||
And we use the password "test" if prompted
|
|
||||||
When we run "jrnl -1" and enter
|
When we run "jrnl -1" and enter
|
||||||
encrypted.txt
|
encrypted.txt
|
||||||
y
|
y
|
||||||
n
|
n
|
||||||
|
test
|
||||||
|
test
|
||||||
|
n
|
||||||
Then the error output should contain "Journal will be encrypted"
|
Then the error 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 -1"
|
When we run "jrnl -1" and enter
|
||||||
|
test
|
||||||
Then we should be prompted for a password
|
Then we should be prompted for a password
|
||||||
And the error output should contain "no entries found"
|
And the error output should contain "no entries found"
|
||||||
And the error output should not contain "Wrong password, try again"
|
And the error output should not contain "Wrong password, try again"
|
||||||
|
|
Loading…
Add table
Reference in a new issue