mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-07-11 09:36:14 +02:00
Rework how all output and messaging works in jrnl (#1475)
* fix missed statement from last PR * replace print statement for adding an entry to a journal * clean up linting and format * change print statement over to new print_msg function * make print_msg always print to stderr * change print statement over to new print_msg function * update importer to use new message function * update yaml format to use new message function * code cleanup * update yaml format to use new message function * update yaml format to use new exception handling * update Journal class to use new message function * update install module to use new message function * update config module to use new message function * update upgrade module to properly use new message and exception handling * fix typo * update upgrade module to use new message handling * update welcome message to use new handling * update upgrade module to use new message handling * update upgrade module journal summaries to use new message handling * take out old code * update upgrade module to use new message handling * update upgrade module to use new message handling * update more modules to use new message handling * take out old comment * update deprecated_cmd to use new message handling * update text_exporter with new message handling, get rid of old color constants * get rid of hardcoded text * whitespace changes * rework MsgType into MsgStyle so messages can have different styles * add comment * Move around code to separate concerns of each function a bit more * update create_password and yesno prompt functions for new messaging * fix missing newline for keyboard interrupts * fix misc linting * fix bug with panel titles always showing 'error' after one error * fix missing import * update debug output after uncaught exception * update exception for new exception handling * rewrite yesno function to use new centralized messages * reduce the debug output slightly * clean up print_msgs function * clean up create_password function * clean up misc linting * rename screen_input to hide_input to be more clear * update encrypted journal prompt to use new messaging functionality * fix typo in message key * move rich console into function so we can mock properly * update password mock to use rich console instead of getpass * add more helpful output to then step * fix test by updating expected output * update message to use new functionality * rework mocks in test suite for new messaging functionality * fix linting issue * fix more tests * fix more tests * fix more tests * fix more tests * fix merge bug * update prompt_action_entries to use new messaging functionality * Add new input_method "type" This does the same thing as input_method "pipe" but is more clear what it's doing (typing text into the builtin composer) * get rid of old commented code * get rid of unused code * move some files around Co-authored-by: Micah Jerome Ellison <micah.jerome.ellison@gmail.com>
This commit is contained in:
parent
4d683a13c0
commit
f53110c69b
38 changed files with 912 additions and 470 deletions
|
@ -20,10 +20,11 @@ from .config import verify_config_colors
|
|||
from .prompt import yesno
|
||||
from .upgrade import is_old_version
|
||||
|
||||
from jrnl.output import print_msg
|
||||
from jrnl.exception import JrnlException
|
||||
from jrnl.messages import Message
|
||||
from jrnl.messages import MsgText
|
||||
from jrnl.messages import MsgType
|
||||
from jrnl.messages import MsgStyle
|
||||
|
||||
|
||||
def upgrade_config(config_data, alt_config_path=None):
|
||||
|
@ -38,9 +39,10 @@ def upgrade_config(config_data, alt_config_path=None):
|
|||
config_data[key] = default_config[key]
|
||||
save_config(config_data, alt_config_path)
|
||||
config_path = alt_config_path if alt_config_path else get_config_path()
|
||||
print(
|
||||
f"[Configuration updated to newest version at {config_path}]",
|
||||
file=sys.stderr,
|
||||
print_msg(
|
||||
Message(
|
||||
MsgText.ConfigUpdated, MsgStyle.NORMAL, {"config_path": config_path}
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
@ -57,7 +59,7 @@ def find_alt_config(alt_config):
|
|||
if not os.path.exists(alt_config):
|
||||
raise JrnlException(
|
||||
Message(
|
||||
MsgText.AltConfigNotFound, MsgType.ERROR, {"config_file": alt_config}
|
||||
MsgText.AltConfigNotFound, MsgStyle.ERROR, {"config_file": alt_config}
|
||||
)
|
||||
)
|
||||
|
||||
|
@ -79,8 +81,15 @@ def load_or_install_jrnl(alt_config_path):
|
|||
config = load_config(config_path)
|
||||
|
||||
if config is None:
|
||||
print("Unable to parse config file", file=sys.stderr)
|
||||
sys.exit()
|
||||
raise JrnlException(
|
||||
Message(
|
||||
MsgText.CantParseConfigFile,
|
||||
MsgStyle.ERROR,
|
||||
{
|
||||
"config_path": config_path,
|
||||
},
|
||||
)
|
||||
)
|
||||
|
||||
if is_old_version(config_path):
|
||||
from jrnl import upgrade
|
||||
|
@ -103,8 +112,17 @@ def install():
|
|||
|
||||
# Where to create the journal?
|
||||
default_journal_path = get_default_journal_path()
|
||||
path_query = f"Path to your journal file (leave blank for {default_journal_path}): "
|
||||
journal_path = absolute_path(input(path_query).strip() or default_journal_path)
|
||||
user_given_path = print_msg(
|
||||
Message(
|
||||
MsgText.InstallJournalPathQuestion,
|
||||
MsgStyle.PROMPT,
|
||||
params={
|
||||
"default_journal_path": default_journal_path,
|
||||
},
|
||||
),
|
||||
get_input=True,
|
||||
)
|
||||
journal_path = absolute_path(user_given_path or default_journal_path)
|
||||
default_config = get_default_config()
|
||||
default_config["journals"][DEFAULT_JOURNAL_KEY] = journal_path
|
||||
|
||||
|
@ -116,13 +134,10 @@ def install():
|
|||
pass
|
||||
|
||||
# Encrypt it?
|
||||
encrypt = yesno(
|
||||
"Do you want to encrypt your journal? You can always change this later",
|
||||
default=False,
|
||||
)
|
||||
encrypt = yesno(Message(MsgText.EncryptJournalQuestion), default=False)
|
||||
if encrypt:
|
||||
default_config["encrypt"] = True
|
||||
print("Journal will be encrypted.", file=sys.stderr)
|
||||
print_msg(Message(MsgText.JournalEncrypted, MsgStyle.NORMAL))
|
||||
|
||||
save_config(default_config)
|
||||
return default_config
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue