Skip to content

Commit

Permalink
lib/helpers: new functions _bash_it_history_auto_*()
Browse files Browse the repository at this point in the history
Two new functions `_bash_it_history_auto_save()` and `_bash_it_history_auto_load()`, which append new history to disk and load new history from disk, respectively.

See Bash-it#1595 for discussion.
  • Loading branch information
gaelicWizard committed Sep 12, 2021
1 parent 80fc7f6 commit d880b8a
Showing 1 changed file with 40 additions and 2 deletions.
42 changes: 40 additions & 2 deletions lib/helpers.bash
Original file line number Diff line number Diff line change
Expand Up @@ -954,6 +954,44 @@ function safe_append_preexec {
fi
}

function _save-and-reload-history() {
[[ ${autosave:-0} -eq 1 ]] && history -a && history -c && history -r
function _save-and-reload-history()
{
[[ ${autosave:-${HISTORY_AUTOSAVE:-0}} -eq 1 ]] && local HISTCONTROL="${HISTCONTROL:-}${HISTCONTROL:+:}autoshare"
_bash_it_history_auto_save && _bash_it_history_auto_load
}

function _bash_it_history_auto_save()
{
case $HISTCONTROL in
*'noauto'*|*'autoload'*)
: # Do nothing, as configured.
;;
*'auto'*)
# Append new history from this session to the $HISTFILE
history -a
;;
*)
: # Do nothing, default.
;;
esac
}

function _bash_it_history_auto_load()
{
case $HISTCONTROL in
*'noauto'*|*'autosave'*)
: # Do nothing, as configured.
;;
*'autoloadnew'*)
# Read new entries from $HISTFILE
history -n
;;
*'auto'*)
# Blank in-memory history, then read entire $HISTFILE fresh from disk.
history -c && history -r
;;
*)
: # Do nothing, default.
;;
esac
}

0 comments on commit d880b8a

Please sign in to comment.