From: Sergey Matveev Date: Thu, 29 Oct 2015 08:36:06 +0000 (+0300) Subject: Initial revision X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=7eac92c18a6156833b957158e13f48e76eb34896;p=t.git Initial revision --- 7eac92c18a6156833b957158e13f48e76eb34896 diff --git a/t b/t new file mode 100755 index 0000000..35a5e53 --- /dev/null +++ b/t @@ -0,0 +1,50 @@ +#!/bin/sh -e +# t -- simple notes manager +# Copyright (C) 2013-2015 Sergey Matveev +# Invoke the script without any arguments to briefly print all notes. +# Otherwise you can specify the following ones: +# a -- add new note (either starts an editor if not arguments are specified, +# or save them inside the note silently) +# d N -- delete note N +# m N -- modify note N by starting an editor +# N -- print out note's N contents + +NOTES_DIR=$HOME/.t/$N + +purge() +{ + find $NOTES_DIR -size 0 -delete +} + +get_note() +{ + find $NOTES_DIR -maxdepth 1 -type f | sort | sed -n $(($1 + 1))p +} + +if [ -z "$1" ]; then + purge + cnt=0 + for n in $(find $NOTES_DIR -maxdepth 1 -type f | sort); do + echo "[$cnt]" "$(sed 's/^\(.\{1,70\}\).*$/\1/;q' $n)" "($(sed -n '$=' $n))" + cnt=$(($cnt + 1)) + done + exit 0 +fi + +case "$1" in +a) + shift + note=$NOTES_DIR/$(date '+%s') + [ $# -gt 0 ] && echo "$@" > $note || $EDITOR $note + ;; +d) + rm -f $(get_note $2) + ;; +m) + $EDITOR $(get_note $2) + ;; +*) + cat $(get_note $1) + ;; +esac +purge