aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordanix <danix@danix.xyz>2023-03-26 08:02:22 +0200
committerdanix <danix@danix.xyz>2023-03-26 08:02:22 +0200
commitcb8fcb2fd59e338dbe8c42867ceb28c911a5f302 (patch)
tree6cce3800f692fe601a77e2bdad07f9831f5939c0
parente4b35b4ffafe6088494bdc017ae0bf37a2226942 (diff)
downloadbash-notes-cb8fcb2fd59e338dbe8c42867ceb28c911a5f302.tar.gz
bash-notes-cb8fcb2fd59e338dbe8c42867ceb28c911a5f302.zip
added debugging.v0.2
-rw-r--r--README.md13
-rwxr-xr-xnotes.sh22
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 )