From 7eac92c18a6156833b957158e13f48e76eb34896 Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Thu, 29 Oct 2015 11:36:06 +0300 Subject: [PATCH] Initial revision --- t | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100755 t 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 -- 2.44.0