-
Notifications
You must be signed in to change notification settings - Fork 0
/
for_bashrc
46 lines (43 loc) · 1.63 KB
/
for_bashrc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# Add this code to your .bashrc to save persistent history
#
# See http://eli.thegreenplace.net/2013/06/11/keeping-persistent-history-in-bash
# for details.
#
# Note, HISTTIMEFORMAT has to be set and end with at least one space; for
# example:
#
export HISTTIMEFORMAT="%F %T "
#
# If your format is set differently, you'll need to change the regex that
# matches history lines below.
#
# Eli Bendersky (http://eli.thegreenplace.net)
# This code is in the public domain
log_bash_persistent_history()
{
local rc=$?
[[ $(history 1) =~ ^\ *[0-9]+\ +([^\ ]+\ [^\ ]+)\ +(.*)$ ]]
local host_part=`hostname`
local dir_part=`pwd`
local date_part="${BASH_REMATCH[1]}"
# TODO / NICE-TO-HAVE: do something with newlines in command_part, to avoid
# stuff in the persistent_history file like this:
# 2018-06-19 16:30:49 host:someone-laptop {/home/someone/ros-apriltag} | git filter-branch --env-filter '
# export GIT_COMMITTER_NAME="Jo joson"
# export GIT_COMMITTER_EMAIL="jo@nerrrrrr.com"
# ' --tag-name-filter cat -- --branches --tags
local command_part="${BASH_REMATCH[2]}"
if [ "$command_part" != "$PERSISTENT_HISTORY_LAST" ]
then
# TODO: when we install to /root/.bashrc, we still want to append to /home/NONroot/.persistent_history
echo $date_part "host:"$USER"@"$host_part "{"$dir_part"}" "|" "$command_part" >> ~/.persistent_history
export PERSISTENT_HISTORY_LAST="$command_part"
fi
}
# Stuff to do on PROMPT_COMMAND
run_on_prompt_command()
{
echo c7056b84-e3d3-11e9-b9a3-37962ff2c46c > /dev/null # uuid for checking install
log_bash_persistent_history
}
PROMPT_COMMAND="run_on_prompt_command"