iMajor internal rework by Quentin Rameau - notes - a console notes manager using git Err bitreich.org 70
1Log /scm/notes/log.gph bitreich.org 70
1Files /scm/notes/files.gph bitreich.org 70
1Refs /scm/notes/refs.gph bitreich.org 70
1Tags /scm/notes/tag bitreich.org 70
1LICENSE /scm/notes/file/LICENSE.gph bitreich.org 70
i--- Err bitreich.org 70
1commit 901af4715f8b6dd389b9d047a4ff15e769b61723 /scm/notes/commit/901af4715f8b6dd389b9d047a4ff15e769b61723.gph bitreich.org 70
1parent 15b0eb8c733c9fff27256068ba210d3d904bfadb /scm/notes/commit/15b0eb8c733c9fff27256068ba210d3d904bfadb.gph bitreich.org 70
hAuthor: Solene Rapenne <solene@perso.pw> URL:mailto:solene@perso.pw bitreich.org 70
iDate: Sat, 14 Jul 2018 10:50:03 +0200 Err bitreich.org 70
i Err bitreich.org 70
iMajor internal rework by Quentin Rameau Err bitreich.org 70
i Err bitreich.org 70
iDiffstat: Err bitreich.org 70
i M notes | 130 ++++++++++++++----------------- Err bitreich.org 70
i Err bitreich.org 70
i1 file changed, 60 insertions(+), 70 deletions(-) Err bitreich.org 70
i--- Err bitreich.org 70
1diff --git a/notes b/notes /scm/notes/file/notes.gph bitreich.org 70
i@@ -2,40 +2,40 @@ Err bitreich.org 70
i Err bitreich.org 70
i # tool for taking notes inside a git repository Err bitreich.org 70
i Err bitreich.org 70
i-REPO=${REPO:=~/notes} Err bitreich.org 70
i+: ${REPO:=~/notes} Err bitreich.org 70
i+ Err bitreich.org 70
i+# search for a suitable editor Err bitreich.org 70
i+[ -z "$EDITOR" ] && \ Err bitreich.org 70
i+for e in nvim vim emacs vi ed; do Err bitreich.org 70
i+ if command -v $e >/dev/null 2>&1; then Err bitreich.org 70
i+ EDITOR=$e Err bitreich.org 70
i+ break Err bitreich.org 70
i+ fi Err bitreich.org 70
i+done Err bitreich.org 70
i Err bitreich.org 70
i-# default editor to vi Err bitreich.org 70
i if [ -z "$EDITOR" ]; then Err bitreich.org 70
i- type nvim >/dev/null 2>&1 && EDITOR=nvim Err bitreich.org 70
i- test -z "$EDITOR" && type vim >/dev/null 2>&1 && EDITOR=vim Err bitreich.org 70
i- test -z "$EDITOR" && type emacs >/dev/null 2>&1 && EDITOR=emacs Err bitreich.org 70
i- test -z "$EDITOR" && EDITOR=vi Err bitreich.org 70
i+ printf 'Could not elect an editor. ED is the standard text editor!\n' Err bitreich.org 70
i+ exit 1 Err bitreich.org 70
i fi Err bitreich.org 70
i Err bitreich.org 70
i usage() { Err bitreich.org 70
i- NAME=$(basename $0) Err bitreich.org 70
i- echo "$NAME [init|ls|history|cat|rm] [path]" Err bitreich.org 70
i- echo "" Err bitreich.org 70
i- echo " $NAME init" Err bitreich.org 70
i- echo " - initialize the git repository" Err bitreich.org 70
i- echo "" Err bitreich.org 70
i- echo " $NAME [ls]" Err bitreich.org 70
i- echo " - show hierarchy tree" Err bitreich.org 70
i- echo "" Err bitreich.org 70
i- echo " $NAME path" Err bitreich.org 70
i- echo ' - start $EDITOR on file and auto commit' Err bitreich.org 70
i- echo "" Err bitreich.org 70
i- echo " $NAME history path" Err bitreich.org 70
i- echo " - start tig on file to display file history" Err bitreich.org 70
i- echo "" Err bitreich.org 70
i- echo " $NAME cat path" Err bitreich.org 70
i- echo " - output content of the file" Err bitreich.org 70
i- echo "" Err bitreich.org 70
i- echo " $NAME rm path" Err bitreich.org 70
i- echo " - delete file" Err bitreich.org 70
i- echo "" Err bitreich.org 70
i- echo " $NAME last" Err bitreich.org 70
i- echo " - show files ordered by edition time" Err bitreich.org 70
i+ name=$(basename $0) Err bitreich.org 70
i+ printf '%s\n' \ Err bitreich.org 70
i+ "$name [ls] | init | last | [history|cat|rm] PATH" \ Err bitreich.org 70
i+ "$name [ls]" \ Err bitreich.org 70
i+ ': show hierarchy tree' \ Err bitreich.org 70
i+ "$name init" \ Err bitreich.org 70
i+ ': initialize the git repository' \ Err bitreich.org 70
i+ "$name last" \ Err bitreich.org 70
i+ ': show files ordered by edition time' \ Err bitreich.org 70
i+ "$name history PATH" \ Err bitreich.org 70
i+ ': uses tig to display file history' \ Err bitreich.org 70
i+ "$name cat PATH" \ Err bitreich.org 70
i+ ': output content of the file' \ Err bitreich.org 70
i+ "$name rm PATH" \ Err bitreich.org 70
i+ ': delete file' \ Err bitreich.org 70
i+ "$name PATH" \ Err bitreich.org 70
i+ ": start \$EDITOR ($EDITOR) on file and auto commit" Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i # display a file tree of notes taken Err bitreich.org 70
i@@ -45,54 +45,46 @@ display() { Err bitreich.org 70
i Err bitreich.org 70
i # edit a file given as parameter Err bitreich.org 70
i edit() { Err bitreich.org 70
i- DEST="$1" Err bitreich.org 70
i- DIRNAME=$(dirname "$DEST") Err bitreich.org 70
i cd "$REPO" Err bitreich.org 70
i- Err bitreich.org 70
i- if [ ! -d "$DEST" ] Err bitreich.org 70
i+ if [ ! -d "$1" ] Err bitreich.org 70
i then Err bitreich.org 70
i- mkdir -p "${DIRNAME}" Err bitreich.org 70
i- $EDITOR "$DEST" Err bitreich.org 70
i- git add "$DEST" Err bitreich.org 70
i- git commit -m "editing by $USER" "$DEST" Err bitreich.org 70
i+ mkdir -p "$(dirname "$destdir")" Err bitreich.org 70
i+ "$EDITOR" "$1" Err bitreich.org 70
i+ git add "$1" Err bitreich.org 70
i+ git commit -m "editing by $USER" "$1" Err bitreich.org 70
i else Err bitreich.org 70
i- echo "${DEST} is a folder. Aborting" Err bitreich.org 70
i+ printf 'Aborting: "%s" is a directory.\n' "$1" Err bitreich.org 70
i exit 1 Err bitreich.org 70
i fi Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i # show file history using tig program Err bitreich.org 70
i histo() { Err bitreich.org 70
i- DEST="$1" Err bitreich.org 70
i cd "$REPO" Err bitreich.org 70
i- Err bitreich.org 70
i- tig "$DEST" Err bitreich.org 70
i+ tig "$1" Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i # output the content of a file Err bitreich.org 70
i show_file() { Err bitreich.org 70
i- DEST="$1" Err bitreich.org 70
i cd "$REPO" Err bitreich.org 70
i- cat "$DEST" Err bitreich.org 70
i+ cat "$1" Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i # delete a file and commit in git Err bitreich.org 70
i delete() { Err bitreich.org 70
i- DEST="$1" Err bitreich.org 70
i cd "$REPO" Err bitreich.org 70
i- if [ -f "$DEST" ]; Err bitreich.org 70
i+ if [ -f "$1" ]; Err bitreich.org 70
i then Err bitreich.org 70
i- git rm "$DEST" Err bitreich.org 70
i- git commit -m "deleted by $USER" "$DEST" Err bitreich.org 70
i+ git rm "$1" Err bitreich.org 70
i+ git commit -m "deleted by $USER" "$1" Err bitreich.org 70
i else Err bitreich.org 70
i- echo "${DEST} is a folder. Aborting." Err bitreich.org 70
i+ printf 'Aborting: "%s" is a directory.\n' "$1" Err bitreich.org 70
i exit 1 Err bitreich.org 70
i fi Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i # display the list of edited files ordered by time Err bitreich.org 70
i last() { Err bitreich.org 70
i- DEST="$1" Err bitreich.org 70
i cd "$REPO" Err bitreich.org 70
i git log --pretty="%cr" --name-only | \ Err bitreich.org 70
i awk '{ Err bitreich.org 70
i@@ -113,12 +105,12 @@ _completion_list() { Err bitreich.org 70
i cd "$REPO" Err bitreich.org 70
i find . -name '.git' -prune -o -mindepth 2 -type f -print | sed 's,^\./,,' Err bitreich.org 70
i else Err bitreich.org 70
i- echo "$REPO does not exist. Aborting..." Err bitreich.org 70
i+ printf 'Aborting: "%s" does not exist.\n' "$REPO" Err bitreich.org 70
i exit 4 Err bitreich.org 70
i fi Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i-# create a git repo Err bitreich.org 70
i+# create a git repository Err bitreich.org 70
i initialization() { Err bitreich.org 70
i cd "$REPO" Err bitreich.org 70
i if [ -d .git ] Err bitreich.org 70
i@@ -130,27 +122,25 @@ initialization() { Err bitreich.org 70
i fi Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i-mkdir -p "${REPO}" Err bitreich.org 70
i-if [ $? -ne 0 ] Err bitreich.org 70
i+if ! mkdir -p "$REPO" Err bitreich.org 70
i then Err bitreich.org 70
i- echo "Can't create ${REPO}. Aborting." Err bitreich.org 70
i+ printf 'Aborting: cannot create "%s".\n' "$REPO" Err bitreich.org 70
i exit 2 Err bitreich.org 70
i fi Err bitreich.org 70
i Err bitreich.org 70
i-PARAM1="$1" Err bitreich.org 70
i-PARAM2="$2" Err bitreich.org 70
i- Err bitreich.org 70
i-if [ "$PARAM1" = "ls" ]; then display ; exit 0 ; fi Err bitreich.org 70
i-if [ "$PARAM1" = "init" ]; then initialization ; exit 0 ; fi Err bitreich.org 70
i-if [ "$PARAM1" = "" ]; then display ; exit 0 ; fi Err bitreich.org 70
i-if [ "$PARAM1" = "_files" ] ; then _completion_list ; exit 0 ; fi Err bitreich.org 70
i-if [ "$PARAM1" = "rm" ] && [ -n "$PARAM2" ]; then delete "$PARAM2" ; exit 0 ; fi Err bitreich.org 70
i-if expr "$PARAM1" : "^hi" >/dev/null && [ -n "$PARAM2" ]; then histo "$PARAM2" ; exit 0 ; fi Err bitreich.org 70
i-if expr "$PARAM1" : "^c" >/dev/null && [ -n "$PARAM2" ]; then show_file "$PARAM2" ; exit 0 ; fi Err bitreich.org 70
i-if expr "$PARAM1" : "^he" >/dev/null ; then usage ; exit 0 ; fi Err bitreich.org 70
i-if expr "$PARAM1" : "^l" >/dev/null ; then last ; exit 0 ; fi Err bitreich.org 70
i- Err bitreich.org 70
i-if [ -f "${REPO}/${PARAM1}" ] ; then edit "$PARAM1" ; exit 0 ; fi Err bitreich.org 70
i+if [ -f "$REPO/$1" ]; then Err bitreich.org 70
i+ edit "$1" Err bitreich.org 70
i+ exit 0 Err bitreich.org 70
i+fi Err bitreich.org 70
i Err bitreich.org 70
i-# nothing matched Err bitreich.org 70
i-echo "${PARAM1} is not a valid command or an existing filename" && exit 5 Err bitreich.org 70
i+case "$1" in Err bitreich.org 70
i+ '') display ;; Err bitreich.org 70
i+ "ls") display ;; Err bitreich.org 70
i+ "i*") initialization ;; Err bitreich.org 70
i+ "la*") last ;; Err bitreich.org 70
i+ "hi*") [ -n "$2" ] && histo "$2" ;; Err bitreich.org 70
i+ "c*") [ -n "$2" ] && show_file "$2" ;; Err bitreich.org 70
i+ "r*") [ -n "$2" ] && delete "$2" ;; Err bitreich.org 70
i+ "_files") _completion_list ;; Err bitreich.org 70
i+ *) usage && exit 1 ;; Err bitreich.org 70
i+esac Err bitreich.org 70
.
Response:
text/plain