-# Command line parameter processing:
-while getopts ":a:hlvm:s:n:e:r:d:" Option
-do
- case $Option in
- h ) helptext
- exit
- ;;
- a ) TITLE=${OPTARG}
- addnote $TITLE
- ;;
- l ) listnotes
- ;;
- m ) NOTE=${OPTARG}
- editnote "${NOTE}"
- ;;
- d ) NOTE=${OPTARG}
- datenote "${NOTE}"
- ;;
- r ) NOTE=${OPTARG}
- rmnote "${NOTE}"
- ;;
- e ) EDITOR=${OPTARG}
- ;;
- s ) NOTESDIR=${OPTARG}
- ;;
- v ) echo $BASENAME v${VERSION}
- ;;
- * ) echo "You passed an illegal switch to the program!"
- echo "Run '$0 -h' for more help."
- exit
- ;; # DEFAULT
- esac
+# NOTE: This requires GNU getopt. On Mac OS X and FreeBSD, you have to install this
+# separately; see below.
+GOPT=`getopt -o hvla:m:d:r: --long help,version,list,add:,modify:,date:,remove:,editor:,storage: \
+ -n 'bash-notes' -- "$@"`
+
+if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi
+
+# Note the quotes around `$GOPT': they are essential!
+eval set -- "$GOPT"
+
+while true; do
+ case "$1" in
+ -h | --help )
+ helptext
+ exit
+ ;;
+ -v | --version )
+ echo $BASENAME v${VERSION}
+ exit
+ ;;
+ -l | --list )
+ listnotes
+ exit
+ ;;
+ -a | --add )
+ TITLE="$2"
+ shift 2
+ addnote "$TITLE"
+ ;;
+ -m | --modify )
+ NOTE="$2"
+ shift 2
+ editnote "$NOTE"
+ ;;
+ -d | --date )
+ NOTE="$2"
+ shift 2
+ datenote "$NOTE"
+ ;;
+ -r | --remove )
+ NOTE="$2"
+ shift 2
+ rmnote "$NOTE"
+ ;;
+ --editor )
+ EDITOR="$2"
+ shift 2
+ echo "changed EDITOR TO \"$EDITOR\""
+ ;;
+ --storage )
+ BASEDIR="$2"
+ shift 2
+ echo "changed BASEDIR TO \"$BASEDIR\""
+ # firstrun
+ ;;
+ -- )
+ shift; break
+ ;;
+ * )
+ break
+ ;;
+ esac