dotfiles/scripts/mlog

51 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
# Monthly logging script
# Call mlog and it will update a log file
# Set the default mlog folder
[[ -z $MLOG_FOLDER ]] && MLOG_FOLDER="$HOME/mlog"
# Make sure that the folder exists
[[ ! -d $MLOG_FOLDER ]] && mkdir -pv $MLOG_FOLDER
# Make sure that we have a valid TMPDIR
[[ -z $TMPDIR ]] && TMPDIR='/tmp'
# Make sure that we have a valid EDITOR
[[ -z $EDITOR ]] && EDITOR=vim
MLOG_HDR=''
MLOG_TS="[$(date)]"
MLOG_LOG="$MLOG_FOLDER/$(date +%Y-%m)"
MLOG_FILE="$TMPDIR/mlog-tmp-$$"
if [[ -x $HOME/bin/stardate ]]
then
[[ -z $MLOG_RANK ]] && MLOG_RANK='Chief Engineer'
MLOG_HDR=`echo "$MLOG_RANK's log, Stardate $($HOME/bin/stardate)" | sed 's/.$//'`
if [[ -e $MLOG_LOG ]]
then
MLOG_LAST=$(grep Stardate $MLOG_LOG | tail -1)
if [[ "$MLOG_LAST" == "$MLOG_HDR" ]]
then
MLOG_HDR="$MLOG_RANK's log, supplemental"
fi
fi
fi
$EDITOR $MLOG_FILE
[[ ! -s $MLOG_FILE ]] && rm -f $MLOG_FILE && exit 0
echo "$MLOG_HDR" >> $MLOG_LOG
echo "$MLOG_TS" >> $MLOG_LOG
echo >> $MLOG_LOG # Empty line
cat $MLOG_FILE >> $MLOG_LOG
echo -en "\n----------------------------------------" >> $MLOG_LOG
echo -e "----------------------------------------\n" >> $MLOG_LOG