# see example in the addnote function
TERM_OPTS="--class notes --title notes -e "
+# set this to true to have output in plain text
+# or use the -p option on the command line before every other option
+PLAIN=false
# base directory for program files
BASEDIR=~/.local/share/bash-notes
# notes database in json format
Adapt to your needs as you see fit.
+### Debugging
+
+If the script doesn't work for you for some reasons, you can turn on debugging by running the script like this:
+
+```bash
+DEBUG=true notes.sh [options]
+```
+
+And then you'll be able to check all that happened in the log file at `/tmp/debug_bash-notes.log`
+
### Vision
Ok, maybe vision is a bit of a stretch, but I've written this script to use it in my daily workflow with [rofi](https://github.com/davatorium/rofi) and [i3wm](https://github.com/i3/i3). I'll adapt the way it works to better suit this need of mine.
# bash-notes © 2023 by danix is licensed under CC BY-NC 4.0.
# To view a copy of this license, visit http://creativecommons.org/licenses/by-nc/4.0/
-# set -ex
+# to debug the script run it like:
+# DEBUG=true notes.sh ...
+# and check /tmp/debug_bash-notes.log
+if [[ $DEBUG == true ]]; then
+ exec 5> /tmp/debug_bash-notes.log
+ BASH_XTRACEFD="5"
+ PS4='$LINENO: '
+ set -x
+fi
PID=$$
-VERSION="0.1"
+VERSION="0.2"
set_defaults() {
# Binaries to use
+JQ=${JQ:-/usr/bin/jq}
EDITOR=${EDITOR:-/usr/bin/vim}
TERMINAL=${TERMINAL:-/usr/bin/alacritty}
# add options for your terminal. Remember to add the last option to execute
# your editor program, otherwise the script will fail.
# see example in the addnote function
TERM_OPTS="--class notes --title notes -e "
-JQ=${JQ:-/usr/bin/jq}
+# set this to true to have output in plain text
+# or use the -p option on the command line before every other option
+PLAIN=false
# base directory for program files
BASEDIR=${BASEDIR:-~/.local/share/bash-notes}
# notes database in json format
notes archive: ${NOTESDIR}/
notes database: ${DB}
rc file: $RCFILE
+debug file: /tmp/debug_bash-note.log
text editor: ${EDITOR}
terminal: ${TERMINAL}
GOPT=`getopt -o hvpla:e:d: --long help,version,list,plain,userconf,add:,edit:,delete:,editor:,storage: \
-n 'bash-notes' -- "$@"`
-if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi
+if [ $? != 0 ] ; then helptext >&2 ; exit 1 ; fi
# Note the quotes around `$GOPT': they are essential!
eval set -- "$GOPT"
-PLAIN=false
-
while true; do
case "$1" in
-h | --help )