Collect your thoughts and notes without leaving the command line.
Find a file
Suhas 4f79803885
Allow runtime configuration overrides from the commandline (#1169)
Add --config-override feature

* add test and argument handler for runtime override of configurations.
* identify location to apply override in "main"
* update gitignore
* remove unneeded import
* add jrnl interface test for overriden configurations
* trivial whitespace change
* implement runtime override
* make format
* refactor override unittest
* clean up unused import
* start writing integration test
* add linewrap override scenario
* implement editor override step
* add dev dependencies on pytest -mock and -cov
* make format
* remove unused imports
* make format
* rename --override to --config-override
* move override implementation into own module
* begin TDD of dot notated overrides
* rewrite behavior scenario
* implement recursive config overrides
* clean up unittests
* iterate on behave step
* make format
* cleanup
* move override behave tests out of core
* refactor recursive code
* make format
* code cleanup
* remove unused import
* update test config
* rewrite test for better mock call expect
* make format
* binary search misbehaving windows test
* unittest multiple overrides
* uncomment dot notation unittest
* add multiple override scenario spec
* make format
* make format
* update unittests for new syntax
* update integ tests for new syntax
* update gitignore
* guard override application
* deserialize function as return type
* make format
* organize deserialization unittests
* better, more specific behave tests
* test different editor launch commands
* formatting
* handle datatypes in deserialization and update helptext
* stick to config convention in testbed
* update tests ith better verifications
* make format
* space
* review feedbac
* make format
* skip on win
* update deps
* update tests with better verifications
make format
space
review feedbac
* skip on win
* update deps
* refactor deserialization
organize test_parse_args
make format
* skip on win
* refactor deserialization
organize test_parse_args
make format
* update tests ith better verifications
* make format
* space
* make format
* document apply_overrides
* update gitignore
* document config-override enhancement
* Simplify config override syntax (#5)
* update tests and expected behavior
* clean up arg parsing tests
* update deserialization
* update deserialization
* config argparse action
* update override application logic
* update tests; delete unused imports
* override param must be list
* update docstring
* update test input to SUT
* update remaining override unittests
* make format
* forgot to update CLI syntax
* update documentation to sphinx style
* variable renames
* Lockfile merge (#7)
* Add brew and gitter badges to README
* Update changelog [ci skip]
* Make journal selection behavior more consistent when there's a colon with no date (#1164)
* Simplify config override syntax (#8)
* update tests and expected behavior
* clean up arg parsing tests
* update deserialization
* update deserialization
* config argparse action
* update override application logic
* update tests; delete unused imports
* override param must be list
* update docstring
* update test input to SUT
* update remaining override unittests
* make format
* forgot to update CLI syntax
* formatting
* Update pyproject.toml
* update lockfile to remove pytest-cov and pytest-mock deps
* update docs
* reuse existing mock; delete unneeded code
* move overrides earlier in the execution
use existing configs instead of custom
make format
clean up imports
* update for passworded access
context.parser -> parsed_args
* test that no editor is launched
* remove unnecessary mocks
* rename variable for intent
* reinstate getpass deletion
* update gitignore
* capture failure mode
* remove unneeded imports
* renamed variable
* delete redundant step
* comment on step
* clean up step behavior description
* [WIP] lock down journal access behavior
* skip -> wip
* correct command for overriding journal via dot keys
* update wip test for updating a "temp" journal and then reading baack its entries
* remove "mock" from poetry file
* make CI happy
* complex behavior sequence for default journal override
* separate out smaller pieces of logic
test that apply_overrides acts on base configuration and not the copy
* defer modification of loaded configuration to update_config
remove unused fixtures
delete complicated UT since behavior is covered in overrides.feature integ test
delete redundant UT
* Update .gitignore
* remove skip_win
* forward override unpacking to yaml library
* merge config override step with existing config_var step in core
delete config_override step
unify step description syntax
* delete unused and redundant code
* rebases are hard
* remove wip tag from test
* remove skipped tests for windows
* Address code review
yield -> return
remove needless copy
adjust spacing
re-inline args return
reset packaging info to e6c0a16342
revert package version for this PR
* consolidate imports
* Defer config_override unpacking to dict *after* base config is loaded
store cli overrides without unpacking just yet
move deserialize_config_args to config module
delete custom Action class for config operations
apply [k,v] -> {k, v} for each override
update test data
update import
* rename deserialize_config_args to better express intent
make format
2021-03-02 18:47:57 -08:00
.build Add changelog generation workflow to github actions (#1086) 2020-11-21 11:21:19 -08:00
.github Fix case on documentation tag in issue template 2021-02-06 14:10:21 -08:00
docs Allow runtime configuration overrides from the commandline (#1169) 2021-03-02 18:47:57 -08:00
docs_theme Fix broken search bar in docs site (#1135) 2021-01-02 12:24:21 -08:00
features Allow runtime configuration overrides from the commandline (#1169) 2021-03-02 18:47:57 -08:00
jrnl Allow runtime configuration overrides from the commandline (#1169) 2021-03-02 18:47:57 -08:00
tests Allow runtime configuration overrides from the commandline (#1169) 2021-03-02 18:47:57 -08:00
.gitattributes Ensure test data is always checked out with LF line endings (#965) 2020-05-27 14:08:48 -07:00
.gitignore Allow runtime configuration overrides from the commandline (#1169) 2021-03-02 18:47:57 -08:00
CHANGELOG.md Update changelog [ci skip] 2021-02-27 19:05:55 +00:00
CODE_OF_CONDUCT.md Update the code of conduct (#913) 2020-04-18 12:35:46 -07:00
CONTRIBUTING.md Emphasize installing dependencies before testing (#1148) 2021-01-09 11:07:03 -08:00
issue_template.md Clean up templates and issues (#954) 2020-05-23 15:58:04 -07:00
LICENSE.md Upgrade license to GPLv3 (#918) 2020-04-18 13:31:25 -07:00
Makefile Make behave output more concise when running make test (#988) 2020-06-27 17:51:31 -07:00
mkdocs.yml Comply with GPL by acknowledging all authors and including license info in each source file (#1121) 2020-12-19 22:28:22 -08:00
poetry.lock Bump cryptography from 3.4.4 to 3.4.6 (#1195) 2021-02-20 11:30:33 -08:00
pyproject.toml Increment version to v2.7.1 2021-02-27 19:04:21 +00:00
README.md Add brew and gitter badges to README 2021-01-30 13:31:24 -08:00
readthedocs.yml Make docs site (jrnl.sh) fully meet Web Content Accessibility Guidelines (WCAG) 2.1 (#1105) 2020-12-12 12:05:12 -08:00

jrnl Testing Downloads Version Homebrew Gitter

To get help, submit an issue on Github.

jrnl is a simple journal application for the command line.

You can use it to easily create, search, and view journal entries. Journals are stored as human-readable plain text, and can also be encrypted using AES encryption.

In a Nutshell

To make a new entry, just enter

jrnl yesterday: Called in sick. Used the time to clean the house and write my
book.

yesterday: is interpreted by jrnl as a timestamp. Everything until the first sentence ending (either ., ?, or !) is interpreted as the title, and the rest as the body. In your journal file, the result will look like this:

[2012-03-29 09:00] Called in sick.
Used the time to clean the house and write my book.

If you just call jrnl, you will be prompted to compose your entry - but you can also configure jrnl to use your external editor.

For more information, please read the documentation.

Contributors

Maintainers

Our maintainers help keep the lights on for the project:

Please thank them if you like jrnl!

Code Contributors

This project is made with love by the many fabulous people who have contributed. jrnl couldn't exist without each and every one of you!

If you'd also like to help make jrnl better, please see our contributing documentation.

Financial Backers

Another way show support is through direct financial contributions. These funds go to covering our costs, and are a quick way to show your appreciation for jrnl.

Become a financial contributor and help us sustain our community.