From cb8fcb2fd59e338dbe8c42867ceb28c911a5f302 Mon Sep 17 00:00:00 2001 From: danix Date: Sun, 26 Mar 2023 08:02:22 +0200 Subject: [PATCH] added debugging. --- README.md | 13 +++++++++++++ notes.sh | 22 ++++++++++++++++------ 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index a0c4fa6..fb85118 100644 --- 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. diff --git a/notes.sh b/notes.sh index eba388f..0139bdc 100755 --- 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 ) -- 2.20.1