added debugging. v0.2
authordanix <danix@danix.xyz>
Sun, 26 Mar 2023 06:02:22 +0000 (08:02 +0200)
committerdanix <danix@danix.xyz>
Sun, 26 Mar 2023 06:02:22 +0000 (08:02 +0200)
README.md
notes.sh

index a0c4fa6..fb85118 100644 (file)
--- a/README.md
+++ b/README.md
@@ -44,6 +44,9 @@ TERMINAL=/usr/bin/alacritty
 # 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
@@ -103,6 +106,16 @@ chmod 755 ~/bin/notes.sh
 
 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.
index eba388f..0139bdc 100755 (executable)
--- a/notes.sh
+++ b/notes.sh
@@ -3,21 +3,32 @@
 # 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
@@ -87,6 +98,7 @@ base directory:               ${BASEDIR}/
 notes archive:         ${NOTESDIR}/
 notes database:                ${DB}
 rc file:               $RCFILE
+debug file:            /tmp/debug_bash-note.log
 
 text editor:           ${EDITOR}
 terminal:              ${TERMINAL}
@@ -278,13 +290,11 @@ fi
 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 )