#!/bin/csh -f # pastelog # ----------------------------------------------------------------------------- # Shell script to keep a log of the paste buffer. Must be called frequently # by cron or something. # ----------------------------------------------------------------------------- # Usage: No arguments # Assumptions: # Effects: # - Appends current contents of paste buffer to paste buffer log file # Notes: # Implementation Notes: # Portability Issues: # Revision History: # $Log$ # ------------------------------------------------------------------------------ set filename_timestamp = `date "+%Y_%m_%d__%H_%M_%S"` set user_friendly_timestamp = `date "+%a %m/%d/%Y %I:%M:%S %p"` set tempfile = /tmp/$0:t_$$_$filename_timestamp set recent_paste_buffer = /tmp/pastebuffer.1.log set paste_buffer_log = ~/fred/admin/pastebuffer.log # Note: Paste buffer often contains lines with CR as line separator. # Change them to newlines. pbpaste | tr '\r' '\n' > $tempfile diff --brief --new-file $tempfile $recent_paste_buffer >& /dev/null if ($status) then echo "--------------------------" >>! $paste_buffer_log echo $user_friendly_timestamp >>! $paste_buffer_log echo "--------------------------" >>! $paste_buffer_log # Note: Without -v, cat adds nothing to log when tempfile contains ^M # as linebreaks. Why? # Note: Probably not necessary now that I've added the tr command to # pbpaste command above. cat -v $tempfile >>! $paste_buffer_log # Echo line break in case pasted text didn't end with one echo "" >>! $paste_buffer_log mv $tempfile $recent_paste_buffer else rm $tempfile endif