Create a gist now

Instantly share code, notes, and snippets.

@pvinis /.zshrc
Created Sep 27, 2012

shell recording
# for spyshell
function zshexit() {
cat /Users/`whoami`/.termlogs/`date +%Y-%m-%d`.txt | perl -pe 's/\e([^\[\]]|\[.*?[a-zA-Z]|\].*?\a)//g' | col -b > temp
mv temp /Users/`whoami`/.termlogs/`date +%Y-%m-%d`.txt
This will help you to record everything you input and all output from your terminal to a file, while you work on your terminal normally.
First, put spyshell in /usr/local/bin/
Add the line /usr/local/bin/spyshell in the file /etc/shells
Do `chsh -s /usr/local/bin/spyshell`
Add the zshexit function in your .zshrc file.
This will create a file in ~/.termlogs/ named with the date, and will append till the day is over. The output is also stripped from any non-printable characters.
You can modify it so that it launches bash, or any other shell, change the location of the logs, as well as the names.
credits: a gist I cannot find, and a lot googling..
if [ -z "$SPYSHELL" ]; then
export SPYSHELL=yes
$script -aq -t 0 /Users/`whoami`/.termlogs/`date +%Y-%m-%d`.txt
exec $SHELL
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment