import - notes - a console notes manager using git
DIR Log
DIR Files
DIR Refs
DIR Tags
DIR LICENSE
---
DIR commit cd514f9fb3d6f5753d014f908f89d142989fc7a7
HTML Author: Solene Rapenne <solene@perso.pw>
Date: Thu, 12 Jul 2018 13:17:53 +0200
import
Diffstat:
A notes | 120 +++++++++++++++++++++++++++++++
1 file changed, 120 insertions(+), 0 deletions(-)
---
DIR diff --git a/notes b/notes
@@ -0,0 +1,120 @@
+#!/bin/sh
+
+# tool for taking notes inside a git repository
+
+REPO=~/notes/
+
+# default editor to vi
+if [ -z "$EDITOR" ]; then
+ which nvi 2>/dev/null 1>/dev/null && EDITOR=nvi
+ test -z "$EDITOR" && which vim 2>/dev/null 1>/dev/null && EDITOR=vim
+ test -z "$EDITOR" && EDITOR=vi
+fi
+
+usage() {
+ NAME=$(basename $0)
+ echo "$NAME [init|ls|edit|history|cat|rm] [path]"
+ echo ""
+ echo " $NAME init"
+ echo " - initialize the git repository"
+ echo ""
+ echo " $NAME [ls]"
+ echo " - show hierarchy tree"
+ echo ""
+ echo " $NAME edit path"
+ echo ' - start $EDITOR on file and auto commit'
+ echo ""
+ echo " $NAME history path"
+ echo " - start tig on file to display file history"
+ echo ""
+ echo " $NAME cat path"
+ echo " - output content of the file"
+ echo ""
+ echo " $NAME rm path"
+ echo " - delete file"
+}
+
+# display a file tree of notes taken
+display() {
+ colortree -C --prune --noreport "$REPO"
+}
+
+# edit a file given as parameter
+edit() {
+ DEST="$1"
+ DIRNAME=$(dirname "$DEST")
+ cd "$REPO"
+
+ if [ ! -d "$DEST" ]
+ then
+ mkdir -p "${DIRNAME}"
+ $EDITOR "$DEST"
+ git add "$DEST"
+ git commit -m "editing by $USER" "$DEST"
+ else
+ echo "${DEST} is a folder. Aborting"
+ exit 1
+ fi
+}
+
+# show file history using tig program
+histo() {
+ DEST="$1"
+ cd "$REPO"
+
+ tig "$DEST"
+}
+
+# output the content of a file
+show_file() {
+ DEST="$1"
+ cd "$REPO"
+ cat "$DEST"
+}
+
+# delete a file and commit in git
+delete() {
+ DEST="$1"
+ cd "$REPO"
+ if [ -f "$DEST" ];
+ then
+ git rm "$DEST"
+ git commit -m "deleted by $USER" "$DEST"
+ else
+ echo "${DEST} is a folder. Aborting."
+ exit 1
+ fi
+}
+
+# create a git repo
+initialization() {
+ cd $REPO
+ if [ -d .git ]
+ then
+ echo "Git already initialized"
+ exit 3
+ else
+ git init
+ fi
+}
+
+mkdir -p ${REPO}
+if [ $? -ne 0 ]
+then
+ echo "Can't create ${REPO}. Aborting."
+ exit 2
+fi
+
+PARAM1=$1
+PARAM2=$2
+
+if [ "$PARAM1" = "ls" ]; then display ; exit 0 ; fi
+if [ "$PARAM1" = "init" ]; then initialization ; exit 0 ; fi
+if [ "$PARAM1" = "" ]; then display ; exit 0 ; fi
+if expr "$PARAM1" : "^e" >/dev/null && [ -n "$PARAM2" ]; then edit "$PARAM2" ; exit 0 ; fi
+if expr "$PARAM1" : "^hi" >/dev/null && [ -n "$PARAM2" ]; then histo "$PARAM2" ; exit 0 ; fi
+if expr "$PARAM1" : "^c" >/dev/null && [ -n "$PARAM2" ]; then show_file "$PARAM2" ; exit 0 ; fi
+if [ "$PARAM1" = "rm" ] && [ -n "$PARAM2" ]; then delete "$PARAM2" ; exit 0 ; fi
+if expr "$PARAM1" : "^he" >/dev/null ; then usage ; exit 0 ; fi
+
+