読者です 読者をやめる 読者になる 読者になる

グァソのメモ書き

主に自分用メモ

ミーティングのログ取り補助スクリプト

sh script Tips

背景

ミーティングだとかゼミだとか云った場でログを取る時にお決まりの記述がある。

逐一入力するのが面倒だったので、
日付、時刻、何のログかと言った情報を加えたテンプレを作ってEDITORで開くという、
ログ取りの補助をしてくれるスクリプトをつくろうと思った。

簡単な設計

コマンドを叩いたら日付と簡単な記述の入ったtxtファイルを作成してEDITORで開く。
ファイル冒頭にはログ取り開始時刻を挿入し、
日付、場所、参加者、発表者、アジェンダ、ロガー、ロジなどお決まりの要素を挿入。
EDITORが閉じたあとファイル末尾にログ取り終了時刻を挿入する。

引数が与えられた場合、引数最初の1語をファイル名末尾に加え、
全ての引数を記述としてログ冒頭に挿入する。

エラー処理など

環境変数EDITORが設定されていない場合の終了処理、
引数に"-h"を与えた時の使用方法表示

スクリプト

#!/bin/sh
################################################################################
#
# LOGGING ASSIST TOOL
# 
# REQUIREMENTS:
# ENVIRONMENTAL VALIABLE 'EDITOR' must be set.
# 
################################################################################

DATE=`date "+%Y%m%d-%H%M%S"`
FNAME=${DATE}$1.txt
LOGGER="YOURNAME"

if [ -z "${EDITOR}" ]; then
	echo "ERROR: Environmental variable 'EDITOR' is NOT set."
	echo "Exit."
	exit 1
fi

if [ $# -eq 1 ] && [ $1 = "-h" ]; then
cat << __EOF__
LOGGING ASSIST TOOL

USAGE: $0 <DESCRIPTION>
 This script creates a text file which is named as following sample.

 %Y%m%d-%H%M%S<DESCRIPTION>.txt

 %Y and other symbols are same as "date" command.
 i.e. %Y : year, %m : month ...

 <DESCRIPTION> is also to be inserted into first line of the header.
 <DESCRIPTION> can be plural words.
 But ONLY first word of <DESCRIPTION> is to be added into the tail of the file name.
__EOF__
exit 0
fi

case "$#" in
0)
	date "+/*%n * START LOGGING AT %H:%M%n */%n%n/*" >> ${FNAME}
;;
*)
	date "+/*%n * START LOGGING AT %H:%M%n */%n%n/*" >> ${FNAME}
	echo " * "$@ >> ${FNAME}
;;
esac
	date "+ * DATE: %Y-%m-%d%n * TIME: " >> ${FNAME}
	cat << __EOF__ >> ${FNAME}
 * PLACE: 
 * ATTENDEES: 
 *
 * SPEAKERS: 
 * AGENDA: 
 * 
 * LOGGER: ${LOGGER}
 */

/*
 * LOGISTICS
 */


/*
 * SPEAKER: 
 * SUBJECT: 
 */
__EOF__
	${EDITOR} ${FNAME}
	date "+ %n/*%n * FINISH LOGGING AT %H:%M%n */" >> ${FNAME}
exit 0

使い方と生成されるファイル

適当に実行権限を与えてPATHの通った所に置いて下さい。

次のコマンド*1
実行した場合、

THISSCRIPT TEST DESCRIPTION

以下のようなファイルが出来ます。
%Y%m%d-%H%M%STEST.txt
*2

/*
 * START LOGGING AT %H:%M
 */

/*
 * TEST DESCRIPTION
 * DATE: %Y-%m-%d
 * TIME: 
 * PLACE: 
 * ATTENDEES: 
 *
 * SPEAKERS: 
 * AGENDA: 
 * 
 * LOGGER: YOURNAME
 */

/*
 * LOGISTICS
 */


/*
 * SPEAKER: 
 * SUBJECT: 
 */
 
/*
 * FINISH LOGGING AT %H:%M
 */

*1:THISSCRIPTにはこのスクリプト名が入ります

*2:%Y-%m-%d, %H:%M:%Sにはスクリプト上のdateコマンドで取得した値が入ります。 ファイル名最後の%SとTESTの間に何も入っていないためわかりにくいですね。。。