Skip to main content

persists all shell history in $HOME/.logs

Project description

persists all shell history in `$HOME/.logs`

If you like the idea click ⭐ on the repo and tweet.

xontrib log-all-history

To install use pip:

xpip install xontrib-log-all-history
# or: xpip install -U git+https://github.com/drmikecrowe/xontrib-log-all-history

Usage

xontrib load log_all_history
# TODO: what's next?

:warning: If you using SqliteHistory backend, you must include $XONSH_HISTORY_BACKEND = 'sqlite' before loading. For example:

$XONSH_HISTORY_BACKEND = 'sqlite'
xontrib load 'log-all-history'

Architecture

This plugin intercepts history before sending to the JsonHistory or SqliteHistory backend. In short:

  • Take the current command line and append to a history named: $HOME/.logs/$PWD/xonsh-history-{DateTime}.log
  • For example:
 ~/P/P/x/xontrib-log-all-history  cat README.md > /dev/null
 ~/P/P/x/xontrib-log-all-history  tail $LOG_ALL_HISTORY_FILE
2022-03-11.21.17.01 cat README.md > /dev/null
 ~/P/P/x/xontrib-log-all-history 

I've been using this method since October in 2019 (both in bash and now xonsh). Here's stats on my logs directory:

 ~/P/P/x/xontrib-log-all-history  du -sh ~/.logs
16M     /home/mcrowe/.logs
 ~/P/P/x/xontrib-log-all-history  egrep '^201' ~/.logs -Rh | cut -b -7 | sort | uniq | head -n 1
2019-10
 ~/P/P/x/xontrib-log-all-history  find ~/.logs | wc -l
3645
 ~/P/P/x/xontrib-log-all-history 

Searching History

Two helper aliases are enabled to assist in searching your accumulated history:


hgrep -- "H"istory "Grep"

This command is simply grep -ERh {SEARCH_STRING} $HOME/.logs -- it searches all folders.


hgrep -- "H"istory in this "D"irectory "Grep"

This command is simply grep -ERh {SEARCH_STRING} $HOME/.logs/$PWD -- it searches all logs you've done in this specific directory. The use-case for this is:

  • You use the python command frequently
  • You remember using a python command in the past for the current project with a lot of parameters you figured out, but you didn't save it.
    • If you did hgrep python, you'd find many entries.
    • By using hdgrep python, you find the specific command.

Example:

 ~/P/P/x/xontrib-log-all-history  hgrep cat | wc -l
1427
 ~/P/P/x/xontrib-log-all-history  hdgrep cat | wc -l
10
 ~/P/P/x/xontrib-log-all-history 

(yes, I did several cats testing for the readme...)

Optional Configuration

If you want to place to the logs in a different folder, set:

$LOG_ALL_HISTORY_DIR = f"{$HOME}/.all-logs"
xontrib load 'log-all-history'

Credits

This package was created with xontrib cookiecutter template.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xontrib-log-all-history-1.1.0.tar.gz (4.1 kB view details)

Uploaded Source

Built Distribution

xontrib_log_all_history-1.1.0-py3-none-any.whl (4.3 kB view details)

Uploaded Python 3

File details

Details for the file xontrib-log-all-history-1.1.0.tar.gz.

File metadata

  • Download URL: xontrib-log-all-history-1.1.0.tar.gz
  • Upload date:
  • Size: 4.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for xontrib-log-all-history-1.1.0.tar.gz
Algorithm Hash digest
SHA256 9e2078effce66c674c8227b2d5218c71648ba76e998dfe5ce5dad02c8a0bb801
MD5 0516d1be26c34980481133bbf5c879e0
BLAKE2b-256 ebfa6124ef836b41814548d8b2b51de8c7ce14bd1c9699905ae9e75b239a8aa1

See more details on using hashes here.

File details

Details for the file xontrib_log_all_history-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: xontrib_log_all_history-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 4.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for xontrib_log_all_history-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ddac54383bfce4ec69f0d4238dbebddc3fa1755f375653e106c0dcf384a9f54f
MD5 ddc688ecd103479104dc8e26332627f1
BLAKE2b-256 29bc005d2a3524930bad882f7a8d902b52061de59a2190995477526f924874c1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page